**************************************************************************************
	;Header frs File-linken

	IFD	Flag_project
Flag_steering	set 1
	ENDC
	IFND	Flag_steering
Flag_steering	set 0
	ENDC
	IFEQ	Flag_steering
Flag_steering	set 1
	include	Nutz_project
	ELSEIF
**************************************************************************************

LEFT_TOLERANZ=4
RIGHT_TOLERANZ=8
LEFT_TOLERANZ_M=-1
RIGHT_TOLERANZ_M=-2

*------------------------------------------------------------------------------
Hard		=	0
Soft		=	1
TEMET_MID_X	=	144-32/2
TEMET_MID_Y	=	90	;82
*------------------------------------------------------------------------------
X_KOLLBIT	=	14
GROUND_BIT	=	13
Y_KOLLBIT	=	12
ELEVATORBIT	=	11
WALK_BIT	=	10
*------------------------------------------------------------------------------
*------------	TEMET Player Routines
*------------------------------------------------------------------------------
Init_TEMET_Supervisor	*--*>Init Not Tab Values first
		movem.l	d0-d7/a0-a5,-(sp)

		clr.b	Win(a6)
		clr.b	Dead(a6)
;		clr.b	Dead_Time(a6)
		clr.b	Finish(a6)
		st	NoTestFlyHP(a6)				*>>>>>>>>>>>>>>

	lea	Message_Struktur,a0
	cmp.b	#ISLAND_SKY,Message_Welt(a0)
	bne.s	.NoSky

		move.b	#1,NoTestFlyHP(a6)

.NoSky		move.w	#Nutz_VRam/32+$8000,TEMET_Prio(a6)
		move.l	#Set_Which_Shield_CT,Shield_Col_Pnt_Time(a6)
		move.l	#Set_Which_Shield_CN,Shield_Col_Pnt_Norm(a6)
		move.l	#Set_Which_Shield_FL,Shield_Col_Pnt_Fla(a6)

		lea	Flash_Obj0(a6),a1
		lea	Flash_Default(pc),a0
		moveq	#9-1,d7
.copy_flash:
		move.w	(a0)+,(a1)+
		dbf	d7,.copy_flash


		*--*>Pre Fill STone TAbs
		move.l	#STONE_Tab1,Act_TEMET_Tab(a6)
		jsr	Fill_Steer_Tab
		jsr	Fill_Steer_Stone_Vals
		move.l	#STONE_Tab2,Act_TEMET_Tab(a6)
		jsr	Fill_Steer_Tab
		jsr	Fill_Steer_Stone_Vals
		move.l	#STONE_Tab3,Act_TEMET_Tab(a6)
		jsr	Fill_Steer_Tab
		jsr	Fill_Steer_Stone_Vals
		*--*>Fill TEMET TAb
		move.l	#WorkRam,Act_TEMET_Tab(a6)
		jsr	Fill_Steer_Tab
		jsr	Get_Extras

	;Spur eintragen initialisieren.

	IFNE	Record
	lea	Record_Buffer,a0
	move.w	#4096-1,d7
.init_buffer:
	st	(a0)+
	dbf	d7,.init_buffer

	move.l	#Record_Buffer-1,Spur_Pointer(a6)
	sf	Spur_counter(a6)
	move.b	#-1,Spur_JoyPad(a6)		;Wird sofort mit dem richtigen Wert berschrieben
	ENDC


		movem.l	(sp)+,d0-d7/a0-a5
		rts

*----------------------------------------------------------------------------------------
Fill_Steer_Stone_Vals	*--*>Values for Stones initialisieren
		move.l	Act_TEMET_Tab(a6),a2
		move.w	#FALLEN,TEMET_Status(a2)
		move.w	#7,TEMET_MaxSpeed(a2)
		move.w	#60,TEMET_Gravity_Jump(a2)
		move.w	#40,TEMET_Gravity_WalkU(a2)
		move.w	#140,TEMET_Gravity_WalkD(a2)
		move.w	#80,TEMET_Gravity_FLY(a2)
		move.w	#20,TEMET_Acce_Jump(a2)
		move.w	#30,TEMET_Acce_Walk(a2)
		move.w	#10,TEMET_Auslaufen(a2)
		move.w	#65,TEMET_Bremsen(a2)
		move.w	#50,TEMET_Jumpen(a2)
		move.w	#1,TEMET_S_Test_Flag(a2)
		move.w	#$021e,TEMET_X_Koll_Offset(a2)
		move.w	#$1010,TEMET_X_Foot_Offset(a2)
		move.w	#32,TEMET_Y_Foot_Offset(a2)
		move.w	#-1,TEMET_Fly_Up_Val_X(a2)
		move.w	#-1,TEMET_Fly_Up_Val_Y(a2)
		move.w	#6,TEMET_Fly_Delay_I(a2)
		move.w	#1,TEMET_Anim_Dir(a2)
		rts
*----------------------------------------------------------------------------------------
Fill_Steer_Tab	*--*>Fill Akt Tab
		move.l	Act_TEMET_Tab(a6),a2
		clr.w	TEMET_Other_Object(a2)
		move.w	#NORMAL,TEMET_Status(a2)
		clr.w	TEMET_Liane_Flag(a2)
	clr.w	TEMET_PUNCH_FLAG(a2)
		clr.w	TEMET_Underwater(a2)
		clr.w	TEMET_Been_HitTimer(a2)
		clr.w	TEMET_Shield_Flag(a2)
		clr.w	TEMET_Shield_Save(a2)
		clr.w	TEMET_FLASH_JUMPER(a2)
		clr.w	TEMET_Venti_ON(a2)
		clr.w	TEMET_in_Fontne(a2)
*------------------	Speed + Dir	
		clr.w	TEMET_Speed_X(a2)
		clr.w	TEMET_Speed_Y(a2)
		clr.w	TEMET_Speed_X_Rest(a2)
		clr.w	TEMET_Speed_Y_Rest(a2)
		clr.w	TEMET_Speed_W_X(a2)
		clr.w	TEMET_Speed_W_Y(a2)
		clr.w	TEMET_Speed_R_X(a2)
		clr.w	TEMET_Speed_R_Y(a2)
		move	#8,TEMET_MaxSpeed(a2)
		move	#1,TEMET_Dir_X(a2)
		move	#1,TEMET_Dir_Y(a2)
*------------------	Gravitys and Acceleration
		clr.w	TEMET_Gravity(a2)
		move.w	#60,TEMET_Gravity_Jump(a2)
		move.w	#20,TEMET_Gravity_WalkU(a2)
		move.w	#100,TEMET_Gravity_WalkD(a2)
		move.w	#80,TEMET_Gravity_FLY(a2)
		move.w	#25,TEMET_Acce_Jump(a2)
		move.w	#30,TEMET_Acce_Walk(a2)
		clr.w	TEMET_Acceleration(a2)
		move.w	#10,TEMET_Auslaufen(a2)
		move.w	#75,TEMET_Bremsen(a2)
		move.w	#50,TEMET_Jumpen(a2)
		clr.w	TEMET_JumpHight(a2)
		move.w	#13,TEMET_MaxJumpHight(a2)
		clr.w	TEMET_AnfJumpSpeedY(a2)
		move	#$0500,TEMET_AnfJumpSpeedB(a2)
*------------------	Steer Flags and Values
		clr.w	TEMET_S_Test_Flag(a2)
		clr.w	TEMET_Up_Timer(a2)
		clr.l	TEMET_Save_a1(a2)
		clr.w	TEMET_Save_X_d2(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		clr.w	TEMET_KollisionFlag(a2)
		clr.w	TEMET_DirX_Equ_Flag(a2)
		clr.w	TEMET_DirY_Equ_Flag(a2)
*------------------	JoyStick Values
		clr.b	TEMET_Joy_X_Dir(a2)
		clr.b	TEMET_Joy_Y_Dir(a2)
		clr.w	TEMET_Joy_Up(a2)
		clr.w	TEMET_Joy_Up_Count(a2)
		clr.w	TEMET_X_PLUS_OFFS(a2)
		clr.w	TEMET_Y_PLUS_OFFS(a2)
		clr.w	TEMET_X_Koll_AnfPos(a2)
		clr.w	TEMET_Y_Koll_AnfPos(a2)
		clr.w	TEMET_X_Koll_Width(a2)
		clr.w	TEMET_Y_Koll_Height(a2)
		clr.w	TEMET_X_Koll_Offset(a2)
		move	#$0818,TEMET_X_Foot_Offset(a2)
		clr.w	TEMET_Y_Foot_Offset(a2)
*------------------	Scroll Values
		clr.w	TEMET_Speed_X_Scr(a2)
		clr.w	TEMET_Speed_Y_Scr(a2)
		clr.w	TEMET_Scr_X_Value(a2)
		clr.w	TEMET_Scr_Y_Value(a2)
*------------------	Fly Values
		clr.w	TEMET_Fly_Down(a2)
		clr.w	TEMET_Fly_Dir(a2)
		clr.w	TEMET_Old_Fly_Dir(a2)
		clr.w	TEMET_Fly_Offs(a2)
		clr.w	TEMET_Fly_Joy_Dir(a2)
		move.w	#-1,TEMET_Fly_Up_Val_X(a2)
		move.w	#-1,TEMET_Fly_Up_Val_Y(a2)
		clr.w	TEMET_Fly_Delay(a2)
		move.w	#6,TEMET_Fly_Delay_I(a2)
*------------------	Animation Vaulues
		move.w	#1,TEMET_Anim_Dir(a2)
		move.l	#TAS_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAS_Right,TEMET_Next_Anim(a2)
		move.l	#TAS_Right,TEMET_Akt_Anim_Pnt(a2)
		move.w	#1,TEMET_Anim_Delay(a2)
		move.w	#50,TEMET_Anim_Delay_I(a2)
		move.b	#0*8,TEMET_Shield_ACnt_1(a2)
		move.b	#5*8,TEMET_Shield_ACnt_2(a2)
		move.b	#3*8,TEMET_Shield_ACnt_3(a2)
		move.b	#8*8,TEMET_Shield_ACnt_4(a2)
		rts
*----------------------------------------------------------------------------------------
Get_Extras	*--*>Get Extras
		*--*>Extras lschen
		clr.b	Lifes(a6)
		clr.b	Bombs(a6)
		clr.b	Gems(a6)
		clr.w	Wing(a6)
		clr.b	Swim(a6)
		clr.b	Flash(a6)
		clr.b	FlashTimer(a6)
		clr.b	Box(a6)

		*--*>hole Extras
		lea	Message_Struktur,a0
		move.b	Message_Leben(a0),Lifes(a6)
		move.b	Message_Leben(a0),AnfLifes(a6)
		move.b	Message_Bomben(a0),Bombs(a6)
		move.b	Message_Bomben(a0),AnfBombs(a6)
		move.b	Message_Diamanten(a0),Gems(a6)
		move.b	Message_Diamanten(a0),AnfGems(a6)
		move.b	Message_Hitpoints(a0),TEMET_ANZ_HitPoints(a6)
		move.b	Message_Hitpoints(a0),AnfHitpoints(a6)
		move.b	Message_Taschen(a0),TEMET_MAX_HitPoints(a6)
		move.b	Message_Fhigkeiten(a0),d0
		btst	#TIMET_FLASH_B,d0
		beq.s	.NoFlash
		move.b	#1,Flash(a6)
		move.b	Message_Flashs(a0),d1
		move.b	d1,Flash+1(a6)
.NoFlash	btst	#TIMET_WINGS_B,d0
		beq.s	.NoWings
		move.b	#1,Wing(a6)
.NoWings	btst	#TIMET_ATTACK_B,d0
		beq.s	.NoATTACK
		move.b	#1,Box(a6)
.NoATTACK	btst	#TIMET_SWIM_B,d0
		beq.s	.NoSWIM
		move.b	#1,Swim(a6)
.NoSWIM		*--*>Get Wingstatus and Anz Flashes
		move.b	Message_Federn(a0),WingStatus(a6)
		cmp.b	#Water,Message_Welt(a0)
		bne.s	.no_water
		move.b	#1,WingStatus(a6)
		move.b	#1,NoTestFlyHP(a6)
.no_water:
		*--*>Get TRainer
		move.b	Message_Trainer(a0),d0
		move.b	d0,Trainer(a6)
		move.b	Message_Steuerung(a0),d0
		move.b	d0,Joypad(a6)
		*--*>	COUNTINUES
		move.b	Message_Continue(a0),d0
		move.b	d0,Continues(a6)
		rts
*-------------------------------------------------------------------------------------
Put_Extras	*--*>Put Extras
		lea	Message_Struktur,a0
		move.b	Lifes(a6),Message_Leben(a0)
		move.b	Bombs(a6),Message_Bomben(a0)
		move.b	Gems(a6),Message_Diamanten(a0)
		move.b	TEMET_ANZ_HitPoints(a2),Message_Hitpoints(a0)
		rts

*----------------------------------------------------------------------------------------

	include "binary/Player_inf.s"

*----------------------------------------------------------------------------------------
TEMET_Supervisor	*--*>Testen ob Fliegen
		move.l	Act_TEMET_Tab(a6),a2
	tst.b	Dont_render_Parallax(a6)
	bne	Write_Temet_Koords

		addq	#1,TEMET_Fallen_Cnt(a6)
		tst	TEMET_KollisionFlag(a6)
		beq.s	.OKAY_NoCFC
		clr.w	TEMET_Fallen_Cnt(a6)
.OKAY_NoCFC

		bsr	GlobalJoy_Pad
		bsr	TEMET_JoyPad


*	Sharon Stone ???

TEMET_Supervisor_Stone:
		move.l	Act_TEMET_Tab(a6),a2

		*--*>Mot Fremden objekt einige sachen nicht testen
		tst	TEMET_Other_Object(a2)
		bne	.NoFlyTest

		*--*>
		cmp	#SPRUNG,TEMET_Status(a2)
		bne.s	.NoTEstNoSpr
		*--*>Clr Sprung
		move.b	TEMET_Speed_X(a2),d0
		bpl.s	.okpos3
		neg.b	d0
.okpos3		cmp.b	#5,d0
		blo.s	.NoTEstNoSpr
		move	#FALLEN,TEMET_Status(a2)
.NoTEstNoSpr	*--*>count Flash Counter
		addq	#1,TEMET_FLASH_JUMPER(a2)
		clr.w	TEMET_PUNCH_FLAG(a2)

		tst.w	TEMET_Underwater(a2)
		bne	.FlyPosTest
		tst.b	WaterInOut(a6)
		bne	.FlyPosTest
		move	TEMET_Last_Shield(a2),d0
		cmp	TEMET_Shield_Flag(a2),d0
		beq	.FlyPosTest
		cmp	#3,TEMET_Shield_Flag(a2)
		beq.s	.Init_Flash_Vals
		cmp	#3,d0
		beq.s	.Init_Norm
		bra	.FlyPosTest
.Init_Flash_Vals	*--*>Flash Values
		move	#8,TEMET_MaxSpeed(a2)
		move	#20,TEMET_MaxJumpHight(a2)
		move	#$0700,TEMET_AnfJumpSpeedB(a2)
		move	#60,TEMET_Gravity_Jump(a2)
		move	#10,TEMET_Gravity_WalkU(a2)
		move	#160,TEMET_Gravity_WalkD(a2)
		move	#40,TEMET_Acce_Jump(a2)
		move	#60,TEMET_Acce_Walk(a2)
		move	#10,TEMET_Auslaufen(a2)
		move	#100,TEMET_Bremsen(a2)
		move	#70,TEMET_Jumpen(a2)
		*--*>Init Koords Tab
		lea	Flash_Koords_Tab(a6),a5
		moveq	#5-1,d5
.Loop		move	TEMET_X_Position(a2),(a5)+
		move	TEMET_Y_Position(a2),(a5)+
		move	TEMET_X_Position(a2),(a5)+
		move	TEMET_Y_Position(a2),(a5)+
		dbf	d5,.Loop
		clr.w	Flash_Koords_Offs(a6)
		bra.s	.FlyPosTest

.Init_Norm	*--*>Normal Values
		move	#8,TEMET_MaxSpeed(a2)
		move	#13,TEMET_MaxJumpHight(a2)
		move	#$0500,TEMET_AnfJumpSpeedB(a2)
		move	#60,TEMET_Gravity_Jump(a2)
		move	#20,TEMET_Gravity_WalkU(a2)
		move	#100,TEMET_Gravity_WalkD(a2)
		move	#20,TEMET_Acce_Jump(a2)
		move	#30,TEMET_Acce_Walk(a2)
		move	#10,TEMET_Auslaufen(a2)
		move	#65,TEMET_Bremsen(a2)
		move	#50,TEMET_Jumpen(a2)
		
.FlyPosTest	move	TEMET_Shield_Flag(a2),TEMET_Last_Shield(a2)
		*--*>Ist Fliegen mglich
		tst.b	Wing(a6)
		beq.s	.NoFlyTest

		move.b	Wing+1(a6),d0
		clr.b	Wing+1(a6)
		tst.b	NoTestFlyHP(a6)
		beq.s	.okProgcorrect
		cmp.b	#5,TEMET_ANZ_HitPoints(a2)
		bhs.s	.okProgcorrect
		move.b	#1,Wing+1(a6)
.okProgcorrect	cmp.b	Wing+1(a6),d0
		beq.s	.NoFlyTest
		jsr	Write_Wing
.NoFlyTest		*--*>BasisAdressen	
		*--Test if Y Koll to small
		;tst	TEMET_Dir_Y(a2)
		;bpl.s	.NoYBorder
		;move	TEMET_Y_Position(a2),d0
		;cmp	#6*16,d0
		;bhi.s	.NoYBorder
		;add	#$00a0,TEMET_Speed_Y(a2)
		;cmp	#4*16,d0
		;bhi.s	.NoYBorder
		;move	TEMET_Speed_Y(a2),d1
		;asr	#1,d1
		;move	d1,TEMET_Speed_Y(a2)
		tst	TEMET_Y_Position(a2)
		bpl.s	.NoNegY
		clr.w	TEMET_Y_Position(a2)
		clr.w	TEMET_Speed_Y(a2)
		clr.w	TEMET_Fly_Up_Val_X(a2)
		clr.w	TEMET_Fly_Up_Val_Y(a2)
.NoNegY
.NoYBorder	*--FLIEGEN AN ???
		tst	TEMET_Other_Object(a2)
		bne	STONE_STEERING

		*--*>SEILBAHN	***!!!
		cmp	#SEILBAHN,TEMET_Status(a2)
		beq	SEILBAHN_STEER

 		cmp	#VENTILATOR,TEMET_Status(a2)
		beq	VENTI_STEERING
		cmp	#FLIEGEN,TEMET_Status(a2)
		beq	FLYSTEERING
		*--AUF MOVER ???
		cmp	#MOVER,TEMET_Status(a2)
		beq	MOVERSTEERING
		cmp	#NOCTRL,TEMET_Status(a2)
		beq	NOCTRLSTEER
		bra	NORMALSTEERING
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOCTRLSTEER	*--*>No Ctrl
		*--TEMET Next Anim ?
		subq	#1,TEMET_Anim_Delay(a2)
		bne.s	.TestBlinken
		jsr	GetNext_TEMET_Frame
		move	TEMET_Anim_Delay_I(a2),TEMET_Anim_Delay(a2)
		bra.s	.NoAnim
.TestBlinken	tst	TEMET_Shield_Flag(a2)
		bne.s	.SHieldIn
		tst	TEMET_Been_HitTimer(a2)
		beq.s	.NoAnim
.SHieldIn		jsr	GetNext_TEMET_Frame
.NoAnim		;--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		;--PREPARE SCROLLING
		jsr	Prepare_TEMET_ScrSe
		;--Make SCROLLING
		jsr	Make_ScrollSpeed
		;--WRITE KOORDS
		jsr	Write_Temet_Koords
		;--MAKE KOLLISION KOORDS
		jsr	Prep_TEMET_KollVals
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SEILBAHN_STEER	*--TEST LIANE OFF
		*--Set TEMET Directions
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		*--TEMET Next Anim ?
		subq	#1,TEMET_Anim_Delay(a2)
		bne.s	.TestBlinken
		jsr	GetNext_TEMET_Frame
		move	TEMET_Anim_Delay_I(a2),TEMET_Anim_Delay(a2)
		bra.s	.NoAnim
.TestBlinken	tst	TEMET_Shield_Flag(a2)
		bne.s	.SHieldIn
		tst	TEMET_Been_HitTimer(a2)
		beq.s	.NoAnim
.SHieldIn		jsr	GetNext_TEMET_Frame
.NoAnim		;--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		jsr	TEST_HEAD_KOLLISION
		jsr	TEST_X_STACHEL
		jsr	TEST_X_KOLLISION_D
		;--PREPARE SCROLLING
		jsr	Prepare_TEMET_ScrSe
		;--Make SCROLLING
		jsr	Make_ScrollSpeed
		;--WRITE KOORDS
		jsr	Write_Temet_Koords
		;--MAKE KOLLISION KOORDS
		jsr	Prep_TEMET_KollVals
		;move	#$444,$dff180
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
STONE_STEERING
		*--Set STONE Directions
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		move	TEMET_KollisionFlag(a2),-(sp)
		move.b	TEMET_Speed_X(a2),d0
		bpl.s	.OkXpos
		neg.b	d0
.OkXpos		ext.w	d0
		move	d0,-(sp)
		jsr	Make_Directions
		*--TEST AUF SPEED>MAX
		jsr	Test_MAX_Speed
		*--Make TEMET_GRAVITY
		jsr	Make_TEMET_Gravity
		*--STONE Bewegung im Level
		jsr	Calc_New_Verh
		;--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		jsr	TEST_Y_SOLID
		jsr	TEST_X_KOLLISION_D
		jsr	TEST_HEAD_KOLLISION
		move	(sp)+,d4		;**!! SPEED_X
		move	(sp)+,d5		;**!! Kollisionsflag
		cmp.b	#2,d4
		blo.s	.TestKolliflag
		tst.b	TEMET_Speed_X(a2)
		beq.s	.Play
.TestKolliflag	tst	d5
		bne.s	.NoPlay
		tst	TEMET_KollisionFlag(a2)
		beq.s	.NoPlay
		cmp	#2,TEMET_New_Calc_Flag(a2)
		bne	.NoPlay
.Play		nop
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
.NoPlay		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VENTI_STEERING	*--TEST ANZ VENTI
		tst	TEMET_Venti_ON(a2)
		bne.s	.Venties_On
		*--Turn Venties Off
		move	#DREHEN,TEMET_Status(a2)
		bra	NORMALSTEERING
.Venties_On	*--TEST LIANE OFF
		jsr	TEST_TEMET_Liane_O
		*--INIT CORRECT ANIMATION
		jsr	Init_Drehen
		*--Set TEMET Directions
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		jsr	Make_Directions
		*--TEMET Speed regulation
		jsr	Make_TEMET_X_Venti
	 	*--TEST AUF SPEED>MAX
 		jsr	Test_MAX_Speed
		*--WRITE ANIM SPEED
		move	#2,TEMET_Anim_Delay_I(a2)
		*--Make TEMET_GRAVITY
		add	#$20,TEMET_Speed_Y(a2)
		*--TEMET Next Anim ?
		subq	#1,TEMET_Anim_Delay(a2)
		bne.s	.TestBlinken
		jsr	GetNext_TEMET_Frame
		move	TEMET_Anim_Delay_I(a2),TEMET_Anim_Delay(a2)
		bra.s	.NoAnim
.TestBlinken	tst	TEMET_Shield_Flag(a2)
		bne.s	.SHieldIn
		tst	TEMET_Been_HitTimer(a2)
		beq.s	.NoAnim
.SHieldIn		jsr	GetNext_TEMET_Frame
.NoAnim		*--TEMET Bewegung im Level
		jsr	Calc_New_Verh
		;--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		jsr	TEST_Y_SOLID
		jsr	TEST_HEAD_KOLLISION
		jsr	TEST_X_STACHEL
		jsr	TEST_X_KOLLISION_D
		;--PREPARE SCROLLING
		jsr	Prepare_TEMET_Scr
		;--Make SCROLLING
		jsr	Make_ScrollSpeed
		;--WRITE KOORDS
		jsr	Write_Temet_Koords
		;--MAKE KOLLISION KOORDS
		jsr	Prep_TEMET_KollVals
		;move	#$444,$dff180
		*--CLEAR VENTI VALUES
		clr.w	TEMET_Venti_ON(a2)
		rts

*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MOVERSTEERING	*--Set TEMET Directions
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		jsr	Make_Directions
		*--TEMET Speed regulation
		jsr	Make_TEMET_Speed
		*--TEST AUF SPEED>MAX
		jsr	Test_MAX_Speed
		*--CALCULATE ANIM SPEED
		jsr	Make_TEMET_Anim_Spd
		*--INIT CORRECT ANIMATION
		jsr	Init_TEMET_Anim
		*--Make TEMET_GRAVITY
		;jsr	Make_TEMET_Gravity
		*--TEST DREHEN
		;jsr	Test_TEMET_Drehen
		*--SPRINGEN TESTEN
		jsr	Test_TEMET_Jump
		*--TEMET Next Anim ?
		subq	#1,TEMET_Anim_Delay(a2)
		bne.s	.TestBlinken
		jsr	GetNext_TEMET_Frame
		move	TEMET_Anim_Delay_I(a2),TEMET_Anim_Delay(a2)
		bra.s	.NoAnim
.TestBlinken	tst	TEMET_Shield_Flag(a2)
		bne.s	.SHieldIn
		tst	TEMET_Been_HitTimer(a2)
		beq.s	.NoAnim
.SHieldIn		jsr	GetNext_TEMET_Frame
.NoAnim		*--TEMET Bewegung im Level
		jsr	Calc_New_Verh
		*--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		jsr	TEST_HEAD_KOLLISION
		jsr	TEST_X_STACHEL
		jsr	TEST_X_KOLLISION_D
		*--PREPARE SCROLLING
		jsr	Prepare_TEMET_Scr
		*--Make SCROLLING
		jsr	Make_ScrollSpeed
		*--WRITE KOORDS
		jsr	Write_Temet_Koords
		*--MAKE KOLLISION KOORDS
		jsr	Prep_TEMET_KollVals
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FLYSTEERING	*--TEST LIANE OFF
		jsr	TEST_TEMET_Liane_O
		*--TEST if new Anim is possible
		jsr	Test_if_new_Anim
		*--TEMET Next Anim ?
		subq	#1,TEMET_Anim_Delay(a2)
		bne.s	.TestBlinken
		jsr	GetNext_TEMET_Frame
		move	TEMET_Anim_Delay_I(a2),TEMET_Anim_Delay(a2)
		bra.s	.NoAnim
.TestBlinken	tst	TEMET_Shield_Flag(a2)
		bne.s	.SHieldIn
		tst	TEMET_Been_HitTimer(a2)
		beq.s	.NoAnim
.SHieldIn		jsr	GetNext_TEMET_Frame
.NoAnim		*--Set TEMET Directions
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		jsr	Make_Directions
		*--MAKE TEMET-FLY-Speed
		jsr	Make_TEMET_Fly_Spd
		*--TEST AUF SPEED>MAX
		jsr	Test_MAX_Speed
		*--TEMET Bewegung im Level
		jsr	Calc_New_Verh
		*--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		jsr	TEST_Y_SOLID
		jsr	TEST_HEAD_KOLLISION
		jsr	TEST_X_STACHEL
		jsr	TEST_X_KOLLISION_D
		jsr	TEST_Fliegen_Aus
		*--PREPARE SCROLLING
		jsr	Prepare_TEMET_Scr
		*--Make SCROLLING
		jsr	Make_ScrollSpeed
		*--WRITE KOORDS
		jsr	Write_Temet_Koords
		*--MAKE KOLL VALUES
		jsr	Prep_TEMET_FKollVal
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NORMALSTEERING	*--TEST LIANE OFF
		jsr	TEST_TEMET_Liane_O
		jsr	TEST_PUNCH
		*--TEMET Test fly
		jsr	TEST_TEMET_Fly
		cmp	#FLIEGEN,TEMET_Status(a2)
		beq	FLYSTEERING
		*--Set TEMET Directions
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		jsr	Make_Directions
		*--TEMET Speed regulation
		jsr	Make_TEMET_Speed
		*--TEST AUF SPEED>MAX
		jsr	Test_MAX_Speed
		*--CALCULATE ANIM SPEED
		jsr	Make_TEMET_Anim_Spd
		*--INIT CORRECT ANIMATION
		jsr	Init_TEMET_Anim
		*--Make TEMET_GRAVITY
		jsr	Make_TEMET_Gravity
		*--TEST DREHEN
		jsr	Test_TEMET_Drehen
		*--SPRINGEN TESTEN
		jsr	Test_TEMET_Jump
		*--TEMET Next Anim ?
		subq	#1,TEMET_Anim_Delay(a2)
		bne.s	.TestBlinken
		jsr	GetNext_TEMET_Frame
		move	TEMET_Anim_Delay_I(a2),TEMET_Anim_Delay(a2)
		bra.s	.NoAnim
.TestBlinken	tst	TEMET_Shield_Flag(a2)
		bne.s	.SHieldIn
		tst	TEMET_Been_HitTimer(a2)
		beq.s	.NoAnim
.SHieldIn	jsr	GetNext_TEMET_Frame
.NoAnim		*--TEMET Bewegung im Level
		jsr	Calc_New_Verh
		;--Testen ob Kollision mit GFX
		jsr	Change_TEMET_Koords
		jsr	TEST_Y_SOLID
		jsr	TEST_HEAD_KOLLISION
		jsr	TEST_X_STACHEL
		jsr	TEST_X_KOLLISION_D
		;--PREPARE SCROLLING
		jsr	Prepare_TEMET_Scr
		;--Make SCROLLING
		jsr	Make_ScrollSpeed
		;--WRITE KOORDS
		jsr	Write_Temet_Koords
		;--MAKE KOLLISION KOORDS
		jsr	Prep_TEMET_KollVals
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*-------------	TEST TEMET LIANE OFF
*-------------------------------------------------------------------------------------
TEST_TEMET_Liane_O	*--*>Test Liane Loslassen
		tst.b	GlobalJoyY(a6)
		beq.s	.NoLianeOff
		bmi.s	.NoLianeOff
		tst	GlobalJoyFire(a6)
		beq.s	.NoLianeOff
		move	#-10,TEMET_Liane_Flag(a2)
.NoLianeOff	rts
*-------------------------------------------------------------------------------------
*-------------	TEST TEMET PUNSCH
*-------------------------------------------------------------------------------------
TEST_PUNCH		*--*>Testen ob Punch mglich
		cmp	#3,TEMET_Shield_Flag(a2)
		beq	.OUT_PUNCH
		tst.b	Box(a6)
		beq.s	.OUT_PUNCH
		tst.b	GlobalJoyY(a6)
		bmi.s	.OUT_PUNCH
		beq.s	.OUT_PUNCH
		tst	GlobalJoyFire(a6)
		beq.s	.OUT_PUNCH
		*--*>PUNCH
		move.b	#1,TEMET_PUNCH_FLAG(a2)
		add	#$0020,TEMET_Speed_Y(a2)
		rts
.OUT_PUNCH	clr.w	TEMET_PUNCH_FLAG(a2)
		rts
*-------------------------------------------------------------------------------------
*-------------	TEST Temet Fly
*-------------------------------------------------------------------------------------
TEST_TEMET_Fly	;--TEMET in AIR
		tst.b	Wing(a6)
		beq	.NoFlyOn
		tst.b	NoTestFlyHP(a6)
		bpl.s	.NoTestHP
		cmp.b	#5,TEMET_ANZ_HitPoints(a2)
		blo	.NoFlyOn
.NoTestHP	cmp	#3,TEMET_Shield_Flag(a2)
		beq	.NoFlyOn
		tst	TEMET_KollisionFlag(a2)
		bne	.NoFlyOn
		tst.b	GlobalJoyY_S(a6)
		bpl.s	.NoFlyOn
		tst	GlobalJoyFire_S(a6)
		beq.s	.NoFlyOn
		tst	TEMET_Underwater(a2)
		bne.s	.NoFlyOn
		moveq	#0,d0
		moveq	#0,d1
		move.b	TEMET_Speed_Y(a2),d1
		tst.b	d1
		bpl.s	.okYpos
		neg.b	d1
		cmp	#3,d1
		blo.s	.FlyOn
		rts
.okYpos		;--FLY-MODE-ON
.FlyOn		clr.w	TEMET_Fly_Up_Val_X(a2)
		clr.w	TEMET_Fly_Up_Val_Y(a2)
		move	#-10,TEMET_Liane_Flag(a2)	;LIANE OFF
		move	#FLIEGEN,TEMET_Status(a2)
		move	GlobalJoyX(a6),TEMET_Fly_Down(a2)
		move	TEMET_Fly_Delay_I(a2),TEMET_Fly_Delay(a2)
		clr.w	TEMET_Fly_Dir(a2)
		jsr	Init_Fly_Anim
		tst	TEMET_Speed_X(a2)
		bpl.s	.Right_Init
.Left_Init	;--Init Left
		move.b	#0,TEMET_Fly_Dir(a2)
		bra.s	.NoFlyOn
.Right_Init	;--Right Left
		move.b	#0,TEMET_Fly_Dir+1(a2)
.NoFlyOn		rts
*---------------------------------------------------------------------------------
*-------------	TEST if NEW ANIM is POSSIBLE
*---------------------------------------------------------------------------------
Test_if_new_Anim	move	TEMET_Fly_Dir(a2),TEMET_Old_Fly_Dir(a2)
		subq	#1,TEMET_Fly_Delay(a2)
		tst	TEMET_Fly_Delay(a2)
		bpl	.Sorry_No_Anim
		*--New Anim
		move	TEMET_Fly_Delay_I(a2),TEMET_Fly_Delay(a2)
		move.b	GlobalJoyX(a6),d7
		tst.b	d7
		ext	d7
		move	d7,TEMET_Fly_Joy_Dir(a2)
		beq	.WriteNewAnim
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Rechte_Drehung
.Linke_Drehung	*--Left Drehung an
		tst	TEMET_Fly_Dir(a2)
		bpl.s	.NoDirChngeOnL
		sub	d7,TEMET_Fly_Dir(a2)
		cmp	#0,TEMET_Fly_Dir(a2)
		beq	.Init_Left_Drehung
		cmp	#$fffc,TEMET_Fly_Dir(a2)		
		beq	.Init_Right_Drehung
		bra	.WriteNewAnim
.NoDirChngeOnL	*--Test if von Links nach Rechts drehen initialisieren
		cmp.b	#FULL_WING,WingStatus(a6)
		bne.s	.No_Anim_Dir_ChngeL
		tst	GlobalJoyFire(a6)
		beq.s	.No_Anim_Dir_ChngeL
		cmp.b	#1,TEMET_Fly_Dir(a2)
		bhi.s	.No_Anim_Dir_ChngeL
		tst.b	d7
		bmi.s	.No_Anim_Dir_ChngeL
		*--Von Links nach Rechts drehen
		move	#$ffff,TEMET_Fly_Dir(a2)
		bra	.WriteNewAnim
.No_Anim_Dir_ChngeL	add.b	d7,TEMET_Fly_Dir(a2)
		and.b	#7,TEMET_Fly_Dir(a2)
		*--Test if Down is Not Allowed
		tst	TEMET_Fly_Down(a2)
		beq.s	.Dont_Test_DownL
		*--test if Flyer is Down
		cmp.b	#7,TEMET_Fly_Dir(a2)
		bne.s	.Dont_Test_DownL
		clr.b	TEMET_Fly_Dir(a2)
.Dont_Test_DownL	*--Anim initialisieren
		jsr	Init_Fly_Anim
		rts
.Rechte_Drehung	*--Right Drehung an
		tst	TEMET_Fly_Dir(a2)
		bpl.s	.NoDirChngeOnR
		ext.w	d7	;da neg Werte extenden und umdrehen
		sub	d7,TEMET_Fly_Dir(a2)
		cmp	#0,TEMET_Fly_Dir(a2)
		beq.s	.Init_Left_Drehung
		cmp	#$fffc,TEMET_Fly_Dir(a2)		
		beq.s	.Init_Right_Drehung
		bra.s	.WriteNewAnim
.NoDirChngeOnR	*--Test if von Rechts nach Linkss drehen initialisieren
		cmp.b	#FULL_WING,WingStatus(a6)
		bne.s	.No_Anim_Dir_ChngeR
		tst	GlobalJoyFire(a6)
		beq.s	.No_Anim_Dir_ChngeR
		cmp.b	#1,TEMET_Fly_Dir+1(a2)
		bhi.s	.No_Anim_Dir_ChngeR
		tst.b	d7
		bpl.s	.No_Anim_Dir_ChngeR
		*--Von Links nach Rechts drehen
		move	#$fffd,TEMET_Fly_Dir(a2)
		bra.s	.WriteNewAnim
.No_Anim_Dir_ChngeR	sub.b	d7,TEMET_Fly_Dir+1(a2)
		and.b	#7,TEMET_Fly_Dir+1(a2)
		*--Test if Down is Not Allowed
		tst	TEMET_Fly_Down(a2)
		beq.s	.Dont_Test_DownR
		*--test if Flyer is Down
		cmp.b	#7,TEMET_Fly_Dir+1(a2)
		bne.s	.Dont_Test_DownR
		clr.b	TEMET_Fly_Dir+1(a2)
.Dont_Test_DownR	*--Anim initialisieren
		jsr	Init_Fly_Anim
		rts
.WriteNewAnim	jsr	Init_Fly_Anim
		rts
.Init_Left_Drehung	*--Left Drehung initialisieren
		clr.w	TEMET_Fly_Dir(a2)
		move	#-1,TEMET_Anim_Dir(a2)
		jsr	Init_Fly_Anim
		rts
.Init_Right_Drehung	*--Right Drehung initialisieren
		clr.w	TEMET_Fly_Dir(a2)
		move	#1,TEMET_Anim_Dir(a2)
		jsr	Init_Fly_Anim
		rts
.Sorry_No_Anim	rts
*------------------------------------------------------------------------------
*------------	MAKE FLY SPEED
*------------------------------------------------------------------------------
		rsreset
FLY_X_Dir		rs.b	1
FLY_Y_Dir		rs.b	1
FLY_X_Speed_Sub	rs.b	1
FLY_Y_Gravity_Sub	rs.b	1
FLY_TAB_LENGTH	rs.w	0

TEMET_FLY_Calc_Vals	;LINKER LOOPING  <--
		dc.b	-1,00,00,20
		;LINKER LOOPING  \
		dc.b	-1,-1,05,40
		;LINKER LOOPING  !
		dc.b	00,-1,10,60
		;LINKER LOOPING  /
		dc.b	+1,-1,05,40
		;LINKER LOOPING  -->
		dc.b	+1,00,00,30
		;LINKER LOOPING  \
		dc.b	+1,+1,05,50
		;LINKER LOOPING  !
		dc.b	00,+1,10,80
		;LINKER LOOPING  /
		dc.b	-1,+1,05,50
		*****************
		;RECHTER LOOPING  -->
		dc.b	+1,00,00,20
		;RECHTER LOOPING  /
		dc.b	+1,-1,05,40
		;RECHTER LOOPING  !
		dc.b	00,-1,10,60
		;RECHTER LOOPING  \
		dc.b	-1,-1,05,40
		;RECHTER LOOPING  <--
		dc.b	-1,00,00,30
		;RECHTER LOOPING  /
		dc.b	-1,+1,05,50
		;RECHTER LOOPING  !
		dc.b	00,+1,10,80
		;RECHTER LOOPING  \
		dc.b	+1,+1,05,50
		*****************
		;LINKS-RECHTS DREHEN \
		dc.b	-1,-1,05,40
		;LINKS-RECHTS DREHEN !
		dc.b	00,-1,10,60
		;LINKS-RECHTS DREHEN /
		dc.b	+1,-1,05,40
*------------------------------------------------------------------------------
Make_TEMET_Fly_Spd	;--CALC ANIMDATA BASE
		lea	TEMET_FLY_Calc_Vals,a0
		add	TEMET_Fly_Offs(a2),a0
		;--Fly GRAVITATION berechnen
		move	TEMET_Gravity_FLY(a2),d0
		move.b	FLY_Y_Gravity_Sub(a0),d1
		ext.w	d1
		tst	TEMET_Dir_Y(a2)
		bpl.s	.OkPos
		tst.b	FLY_Y_Dir(a0)
		bne.s	.OkPos
		lsl	#1,d1		
.OkPos		muls	d1,d0
		divs	#100,d0
		add	d0,TEMET_Speed_Y(a2)
		;--X Luftwiederstand berechnen
		moveq	#0,d0
		move.b	FLY_X_Speed_Sub(a0),d0
		tst	TEMET_Dir_X(a2)
		bpl.s	.Subd0
.Addd0		add	d0,TEMET_Speed_X(a2)
		bra.s	.PosSpeed
.Subd0		sub	d0,TEMET_Speed_X(a2)
.PosSpeed		;--TEST if SUDDEN Up  X is initialised
		tst	TEMET_Fly_Up_Val_X(a2)
		bmi.s	.No_FlyUpInit_X
		;--Fly_Up_Init_X
		move	TEMET_Fly_Up_Val_X(a2),d0
		sub	#10,TEMET_Fly_Up_Val_X(a2)
		sub	d0,TEMET_Speed_Y(a2)
		lsr	#1,d0
		tst	TEMET_Dir_X(a2)
		bpl.s	.PosXSpeed
.NegXSpeed	add	d0,TEMET_Speed_X(a2)
		bra	.No_FlyUpInit_X
.PosXSpeed	sub	d0,TEMET_Speed_X(a2)
.No_FlyUpInit_X	;--TEST if SUDDEN Up  Y is initialised
		tst	TEMET_Fly_Up_Val_Y(a2)
		bmi.s	.No_FlyUpInit_Y
		;--Fly_Up_Init_Y
		move	TEMET_Fly_Up_Val_Y(a2),d0
		sub	#10,TEMET_Fly_Up_Val_Y(a2)
		sub	d0,TEMET_Speed_Y(a2)

.No_FlyUpInit_Y	;--TEST ob SPEEDS angeglichen werden mssen
		tst.b	FLY_X_Dir(a0)
		beq	.END_Speed
		tst.b	FLY_Y_Dir(a0)
		beq	.END_Speed
		;--MAKE SPEED POSITIVE
		move	TEMET_Speed_X(a2),d6
		tst	d6
		bpl.s	.Xpos
		neg	d6
.Xpos		move	TEMET_Speed_Y(a2),d7
		tst	d7
		bpl.s	.Ypos
		neg	d7
.Ypos		;--TEST if sudden Umrechnung
		move	TEMET_Old_Fly_Dir(a2),d0
		cmp	TEMET_Fly_Dir(a2),d0
		beq.s	.TestBiggness
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.TestRight
.TestLeft		tst	TEMET_Fly_Joy_Dir(a2)
		bmi.s	.TestOtherLeft
		cmp	#$ffff,FLY_X_Dir(a0)
		beq	.SuddenBere
		bra.s	.TestBiggness
.TestOtherLeft	cmp	#$01ff,FLY_X_Dir(a0)
		beq	.SuddenBereOther
		bra.s	.TestBiggness
.TestRight	tst	TEMET_Fly_Joy_Dir(a2)
		bpl.s	.TestOtherRight
		cmp	#$01ff,FLY_X_Dir(a0)
		beq.s	.SuddenBere
		bra.s	.TestBiggness
.TestOtherRight	cmp	#$ffff,FLY_X_Dir(a0)
		beq	.SuddenBereOther
.TestBiggness	;--TEST WHICH SPEED is BIGGEST
		cmp	d6,d7
		beq	.END_Speed
		bhi.s	.Y_Bigger
.X_Bigger		;--Pos X Speed is Bigger
		mulu	#02,d6
		divu	#100,d6
		;--von X_Speed abziehen
		tst	TEMET_Dir_X(a2)
		bpl.s	.Subd6
.Addd6		add	d6,TEMET_Speed_X(a2)
		bra.s	.ChngeY
.Subd6		sub	d6,TEMET_Speed_X(a2)
.ChngeY		;--auf Y_Speed aufaddieren
		tst.b	FLY_Y_Dir(a0)
		bpl.s	.okYAdd
		neg	d6
.okYAdd		add	d6,TEMET_Speed_Y(a2)
		bra.s	.END_Speed
.Y_Bigger		;--Pos Y Speed is Bigger
		mulu	#04,d7
		divu	#100,d7
		move	d7,d5
		;--auf X_Speed aufaddieren
		move	TEMET_Dir_Y(a2),d0
		cmp.b	FLY_Y_Dir(a0),d0
		beq.s	.OKsame
		lsr	#1,d5
		lsr	#1,d7
		neg	d7
.OKsame		tst.b	FLY_X_Dir(a0)
		bpl.s	.okXAdd
		neg	d7
.okXAdd		add	d7,TEMET_Speed_X(a2)
		;--von Y_Speed abziehen
		tst	TEMET_Dir_Y(a2)
		bpl.s	.Subd6Y
.Addd6Y		add	d5,TEMET_Speed_Y(a2)
		bra.s	.END_Speed
.Subd6Y		sub	d5,TEMET_Speed_Y(a2)
		bra.s	.END_Speed

.SuddenBere		;--Speed Suddenly umrechnen
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC
		lsr	#2,d6
		move	d6,TEMET_Fly_Up_Val_X(a2)
		lsr	#2,d7
		sub	d7,TEMET_Speed_Y(a2)
		lsr	#1,d7
		move	d7,TEMET_Fly_Up_Val_Y(a2)
		rts
.SuddenBereOther	;--Speed Suddenly umrechnen
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC
 		lsr	#3,d6
		move	d6,TEMET_Fly_Up_Val_X(a2)
		lsr	#2,d7
		sub	d7,TEMET_Speed_Y(a2)
		lsr	#2,d7
		move	d7,TEMET_Fly_Up_Val_Y(a2)
.END_Speed	rts
*------------------------------------------------------------------------------
*------------	TEST Y KOLLISION
*------------------------------------------------------------------------------
TEST_Fliegen_Aus	*--*>Test Wanted aus
		tst.b	GlobalJoyX(a6)
		bne.s	.NoWA
		tst	GlobalJoyFire(a6)
		beq.s	.NoWA
		cmp.b	#Runter,GlobalJoyY(a6)
		bne.s	.NoWA
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		move	#FALLEN,TEMET_Status(a2)
		rts

.NoWA		*--*>Test if not enough HP
		tst.b	NoTestFlyHP(a6)
		bpl.s	.EnoughHp

		cmp.b	#5,TEMET_ANZ_HitPoints(a2)
		bhs	.EnoughHp
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		move	#FALLEN,TEMET_Status(a2)
		rts
.EnoughHp		*--*>Test if Down Flag should be turned off
		tst	TEMET_Fly_Down(a2)
		beq.s	.NoDown_Test
		*--Test Global Joy Dir with Fly Down
		move	TEMET_Fly_Down(a2),d0
		cmp	GlobalJoyX(a6),d0
		beq.s	.NoDown_Test
		*--Down Fly Allowed
		clr.w	TEMET_Fly_Down(a2)
.NoDown_Test	*--*>Calculate LevelAdr mit X=MF
		jsr	.TestHead_FlyOff
			;tst	TEMET_Dir_Y(a2)
			;bmi.s	.TestHead_FlyOff
		move	TEMET_X_Position(a2),d0
		addq	#8,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		addq	#8,d1
		jsr	Get_Block_Icon		;d2 XRest d3 YRest
		;Fetch Block DATA
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		beq.s	.Aus1
		cmp.b	#swand,Block_Through(a1)
		bne.s	.TestNextAus
.Aus1		move	#NORMAL,TEMET_Status(a2)
		rts
.TestNextAus	move	TEMET_X_Position(a2),d0
		add	#8+16,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		addq	#8,d1
		jsr	Get_Block_Icon		;d2 XRest d3 YRest
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		beq.s	.FliegenAus
		cmp.b	#swand,Block_Through(a1)
		bne.s	.NoFliegenAus
.FliegenAus		move	#NORMAL,TEMET_Status(a2)
		rts
.NoFliegenAus	rts

.TestHead_FlyOff	*--*>HEAD TESTEN 
		tst	TEMET_Dir_Y(a2)
		bpl.s	.NoTestHead_FlyOff

		move	TEMET_X_Position(a2),d0
		add	#16,d0
		move	TEMET_Y_Position(a2),d1
		addq	#2,d1
		jsr	Get_Block_Icon		;d2 XRest d3 YRest
		;Fetch Block DATA
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		beq.s	.Out_Head
		cmp.b	#swand,Block_Through(a1)
		beq.s	.Out_Head
		bra.s	.NoHead_FlyOff
.Out_Head		move.w	#$0000,TEMET_Speed_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
.NoTestHead_FlyOff
.NoHead_FlyOff	rts
*------------------------------------------------------------------------------
*------------	Prepare TEMET Kollision Values
*------------------------------------------------------------------------------
Prep_TEMET_KollVals	*--Prep TEMET Hit Vals
		jsr	Prep_TIMET_Hit
		*--Prepare Values for KollisionTest
		moveq	#0,d7
		move	TEMET_X_Position(a2),d0
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.OffsRight
.OffsLeft		move.b	TEMET_X_Foot_Offset(a2),d7
		bra.s	.NoOffs
.OffsRight	move.b	TEMET_X_Foot_Offset+1(a2),d7
.NoOffs		add	d7,d0
		move	d0,TEMET_X_PLUS_OFFS(a2)
		move	TEMET_Y_Position(a2),d0
		add	TEMET_Y_Foot_Offset(a2),d0
		move	d0,TEMET_Y_PLUS_OFFS(a2)
		rts
*------------------------------------------------------------------------------
*------------	Prepare TEMET Kollision Values
*------------------------------------------------------------------------------
Prep_TIMET_Hit	*--Get Base for Anim Infos
		move.l	TEMET_Akt_Anim_Pnt(a2),a0
		*--Calculate TEMET KOLL Offs 
		moveq	#0,d1
		move	TEMET_X_Position(a2),d0
		move.b	TAS_Koll_X_Anf(a0),d1
		add	d1,d0
		move	d0,TEMET_X_Koll_AnfPos(a2)
		move.b	TAS_Koll_X_Width(a0),d1
		move	d1,TEMET_X_Koll_Width(a2)
		move	TEMET_Y_Position(a2),d0
		move.b	TAS_Koll_Y_Anf(a0),d1
		add	d1,d0
		move	d0,TEMET_Y_Koll_AnfPos(a2)
		move.b	TAS_Koll_Y_Height(a0),d1
		move	d1,TEMET_Y_Koll_Height(a2)
		rts
*------------------------------------------------------------------------------
*------------	Prepare TEMET FLY Kollision Values
*------------------------------------------------------------------------------
TEMET_FLY_Koll_Vals	;LINKER LOOPING  <-- \ ! / --> \ ! /
		dc.w	-07,+37
		dc.w	-05,+26
		dc.w	+10,+08
		dc.w	+30,+08
		dc.w	+38,+21
		dc.w	+37,+41
		dc.w	+25,+52
		dc.w	+07,+51
		;RECHTER LOOPING  --> / ! \ <-- / ! \
		dc.w	+38,+38
		dc.w	+37,+19
		dc.w	+25,+08
		dc.w	+08,+07
		dc.w	-07,+20
		dc.w	-05,+39
		dc.w	+08,+52
		dc.w	+25,+51
		;LINKS-RECHTS DREHEN \ ! /
		dc.w	+01,+13
		dc.w	+16,+00
		dc.w	+31,+13
*------------------------------------------------------------------------------
Prep_TEMET_FKollVal	*--Prep TEMET Hit Vals
		jsr	Prep_TIMET_Hit
		*---Prepare Values for Fly-KollisionTest
		*--Get Correct Anim
		tst	TEMET_Fly_Dir(a2)
		bmi.s	.Change_Dir_On
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Right_Looping
.Left_Looping	moveq	#0,d0
		move.b	TEMET_Fly_Dir(a2),d0	;0-7
		bra.s	.Got_Anim_NR
.Right_Looping	moveq	#8,d0
		add.b	TEMET_Fly_Dir+1(a2),d0	;8-15
		bra.s	.Got_Anim_NR
.Change_Dir_On	move	#16,d0
		move	TEMET_Fly_Dir(a2),d1
		neg	d1
		subq	#1,d1
		add	d1,d0			;16-19
.Got_Anim_NR	*--Write Fly-Koll-Offsets
		lea	TEMET_FLY_Koll_Vals,a0
		lsl	#2,d0
		add	d0,a0
		move	(a0)+,d0
		move	(a0),d1
		add	TEMET_X_Position(a2),d0
		add	TEMET_Y_Position(a2),d1
		move	d0,TEMET_X_PLUS_OFFS(a2)
		move	d1,TEMET_Y_PLUS_OFFS(a2)
		rts
*------------------------------------------------------------------------------
*------------	PREP SCROLLING
*------------------------------------------------------------------------------
Prepare_TEMET_Scr	move	TEMET_X_Position(a2),d0
		sub	Scr_X_Level_Pos(a6),d0
		sub	#TEMET_MID_X,d0
		move	d0,TEMET_Scr_X_Value(a2)
		move	TEMET_Y_Position(a2),d0
		sub	Scr_Y_Level_Pos(a6),d0
		sub	#TEMET_MID_Y,d0
		move	d0,TEMET_Scr_Y_Value(a2)
		rts
*------------------------------------------------------------------------------
*------------	PREP SCROLLING SEIL
*------------------------------------------------------------------------------
Prepare_TEMET_ScrSe
		move	TEMET_Seil_X_Position(a6),d0
		sub	Scr_X_Level_Pos(a6),d0
		sub	#TEMET_MID_X,d0
		move	d0,TEMET_Scr_X_Value(a2)
		move	TEMET_Seil_Y_Position(a6),d0
		sub	Scr_Y_Level_Pos(a6),d0
		sub	#TEMET_MID_Y,d0
		move	d0,TEMET_Scr_Y_Value(a2)
		rts
*------------------------------------------------------------------------------
*------------	AUF SPRINGEN
*------------------------------------------------------------------------------
Test_TEMET_Jump	*--*>Test auf Flash keine KolliAbfrage
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.NormJumpTest
		*--*>FLASH TEST
		cmp	#5,TEMET_FLASH_JUMPER(a2)
		bhs	.TestSpringen
		tst	GlobalJoyFire_S(a6)
		beq	.TestSpringen
		bra.s	.FlashJumpIn

.NormJumpTest	;Springen anstellen

		cmp	#SPRINGEN,TEMET_Status(a2)
		beq.s	.Test11

		cmp	#FRAME_NETT,TEMET_Fallen_Cnt(a6)
		bhs	.TestSpringen
		bra.s	.NOYO

.Test11		tst	TEMET_KollisionFlag(a2)
		beq	.TestSpringen

.NOYO		;Joystick nach oben ?
		tst.b	TEMET_Joy_Y_Dir(a2)
		bpl.s	.TestSpringen
.FlashJumpIn	cmp	#SPRINGEN,TEMET_Status(a2)
		beq.s	.TestSpringen
		;Ja dann Init Springen
		jsr	Force_Init_Jump
		move	#SPRINGEN,TEMET_Status(a2)
	 	clr.w	TEMET_JumpHight(a2)
		;X_Anteil Bere
		IFEQ	SOUNDFX
		moveq	#0,d0
		jsr	TFMX+16
		ENDC
		move.l	TEMET_Save_a1(a2),a1
		move	TEMET_Save_X_d2(a2),d2
		moveq	#0,d0
		move	TEMET_AnfJumpSpeedB(a2),d0
		lsr	#2,d2
		moveq	#0,d1
		move.b	Block_Proz_Y_1(a1,d2),d1
		mulu	d1,d0
		divu	#250,d0			;X
		move	TEMET_AnfJumpSpeedB(a2),d1
		sub	d0,d1			;Y
		sub	d1,TEMET_Speed_Y(a2)
		;Correct X Add/sub
		tst.b	Block_Dir_X(a1)
		bpl.s	.Addx
.Subx		sub	d0,TEMET_Speed_X(a2)
		bra.s	.Noaddx
.Addx		add	d0,TEMET_Speed_X(a2)
.Noaddx		clr.w	TEMET_KollisionFlag(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		;Nochmals Dirs auf vernderte Richtungen durchschauen
		move	TEMET_Speed_X(a2),d4
		move	TEMET_Speed_Y(a2),d5
		jsr	Make_Directions
.TestSpringen	;Springen
		cmp	#SPRINGEN,TEMET_Status(a2)
		bne.s	.NoJump
		;--kein Gravitationsausgleich mehr ???
		addq	#1,TEMET_JumpHight(a2)
		move	TEMET_JumpHight(a2),d0
		cmp	TEMET_MaxJumpHight(a2),d0
		bhs.s	.TestJumpFinished
		;Joystick nicht mehr nach oben ?
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.NormJumpTest1
		tst	GlobalJoyFire_S(a6)
		beq.s	.TestJumpFinished
		bra.s	.JoyNOSA
.NormJumpTest1	tst.b	TEMET_Joy_Y_Dir(a2)
		bpl.s	.TestJumpFinished
.JoyNOSA	;Joystick nach oben >Schwerkraft aufheben
		move	TEMET_Speed_Y(a2),d0
		sub	TEMET_Jumpen(a2),d0
		move	d0,TEMET_Speed_Y(a2)
.TestJumpFinished	tst	TEMET_Dir_Y(a2)
		bmi.s	.NoJump
		;move	#FALLEN,TEMET_Status(a2)
		move	#SPRUNG,TEMET_Status(a2)
		;jsr	INIT_Jump_Second
.NoJump		rts
*------------------------------------------------------------------------------
*------------	TEMET TEST DREHEN
*------------------------------------------------------------------------------
Test_TEMET_Drehen	tst	TEMET_KollisionFlag(a2)
		beq.s	.TEST_DREHEN
		move.l	TEMET_Save_a1(a2),a1
		move	TEMET_Save_X_d2(a2),d2
		lsr	#2,d2
		cmp.b	#50,Block_Proz_Y_1(a1,d2)
		bls.s	.TEST_DREHEN
		jsr	Init_Drehen
		move	#DREHEN,TEMET_Status(a2)
.TEST_DREHEN	cmp	#DREHEN,TEMET_Status(a2)
		bne.s	.END
		jsr	Init_Drehen
		tst	TEMET_KollisionFlag(a2)
		beq.s	.END
		tst	TEMET_Speed_X(a2)
		beq.s	.TEST_STAND_UP
		tst	TEMET_Joy_Up(a2)
		bpl.s	.END
.TEST_STAND_UP	cmp	#6,TEMET_Speed_X(a2)
		bhi.s	.END
		move.l	TEMET_Save_a1(a2),a1
		move	TEMET_Save_X_d2(a2),d2
		lsr	#2,d2
		cmp.b	#50,Block_Proz_Y_1(a1,d2)
		bhi.s	.END
		move	#NORMAL,TEMET_Status(a2)
		jsr	Init_TAW_Ausl
.END		rts
*------------------------------------------------------------------------------
*------------	TEMET GRAVITY
*------------------------------------------------------------------------------
Make_TEMET_Gravity:
		tst	TEMET_KollisionFlag(a2)
		beq.s	.NormGrav
		;TEMET_Gravity_Jump
		tst	TEMET_Dir_Y(a2)
		bpl.s	.DownGrav
.UpGrav		move	TEMET_Gravity_WalkU(a2),TEMET_Gravity(a2)
		bra.s	.MakeYGravCorrect
.DownGrav	move	TEMET_Gravity_WalkD(a2),TEMET_Gravity(a2)
		bra.s	.MakeYGravCorrect
.NormGrav	move	TEMET_Gravity_Jump(a2),TEMET_Gravity(a2)
		move	TEMET_Gravity(a2),d0
		bra.s	.AddGrav

.MakeYGravCorrect	;Make Correct Gravity
		move.l	TEMET_Save_a1(a2),a1
		move	TEMET_Save_X_d2(a2),d2
		move	TEMET_Gravity(a2),d0
		moveq	#0,d1
		lsr	#2,d2
		move.b	Block_Proz_Y_1(a1,d2),d1	;Yn=Ya*Y%/100
		muls	d1,d0
		divs	#100,d0
		move	d0,TEMET_Gravity(a2)
.AddGrav	move	TEMET_Speed_Y(a2),d1
		add	d0,d1
		move	d1,TEMET_Speed_Y(a2)

.MakeXGrav	tst	TEMET_KollisionFlag(a2)
		beq.s	.JumpGrav
		move	TEMET_Acce_Walk(a2),TEMET_Acceleration(a2)
		bra.s	.End
.JumpGrav	move	TEMET_Acce_Jump(a2),TEMET_Acceleration(a2)

.End		*--*>Test if Acce should be high
		tst	TEMET_Other_Object(a2)
		bne	.EndEnd
		tst	TEMET_KollisionFlag(a2)
		beq	.EndEnd
		cmp	#2,TEMET_New_Calc_Flag(a2)
		beq.s	.EndEnd
		*--*>Auf Schrgen
		move.l	TEMET_Save_a1(a2),a1
		tst.b	Block_Dir_X(a1)
		bmi.s	.TestifRight

.TestifLeft	tst.b	TEMET_Joy_X_Dir(a2)
		bpl.s	.EndEnd
		;tst	TEMET_Speed_X(a2)
		;bpl.s	.EndEndEnd

		bra.s	.Weita
.TestifRight	tst.b	TEMET_Joy_X_Dir(a2)
		beq.s	.EndEnd
		bmi.s	.EndEnd
		;tst	TEMET_Speed_X(a2)
		;beq.s	.EndEnd
		;bmi.s	.EndEndEnd

.Weita		*--*>In Coorect Dir
		move.b	TEMET_Speed_X(a2),d0
		bpl.s	.OKAY
		neg.b	d0
.OKAY		*--*>
		cmp.b	#1,d0
		bhs.s	.EndEnd
		move	#160,TEMET_Acceleration(a2)
		move	#$0140,d0
		tst.b	TEMET_Joy_X_Dir(a2)
		bpl.s	.Write
		move	#-$0140,d0
.Write		move.w	d0,TEMET_Speed_X(a2)
;.boo		bra.s	.boo

.EndEnd
		rts

.EndEndEnd
		move	#160,TEMET_Acceleration(a2)
		rts
*------------------------------------------------------------------------------
*------------	TEMET INIT ANIM
*------------------------------------------------------------------------------
Init_TEMET_Anim	cmp	#2,TEMET_New_Calc_Flag(a2)
		bne	.No_Stand_Init
		tst	TEMET_Speed_X(a2)
		bne	.No_Stand_Init
		*--*>Test Wackel Anim
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Test_Wackel_Right
.Test_Wackel_Left	*--*>Test if Wackel Left is on
		cmp	#8,TEMET_Save_X_d2(a2)
		bhs.s	.Init_Stand
		*--*Test if Left is No Plate
		moveq	#0,d0
		move.b	TEMET_X_Foot_Offset(a2),d0
		add	TEMET_X_Position(a2),d0
		sub	#16,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		bra.s	.Test_Wackel
.Test_Wackel_Right	*--*>Test if Wackel Left is on
		cmp	#8,TEMET_Save_X_d2(a2)
		bls.s	.Init_Stand
		*--*Test if Left is No Plate
		moveq	#0,d0
		move.b	TEMET_X_Foot_Offset+1(a2),d0
		add	TEMET_X_Position(a2),d0
		add	#16,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		;bra.s	.Test_Wackel
.Test_Wackel	*--*>Test if Block is No Ground
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#swand,Block_Through(a1)
		beq.s	.Init_Stand
		cmp.b	#boden,Block_Through(a1)
              	beq.s	.Init_Stand
		*--*>Init Wackel
		jsr	Init_Wackl
		bra.s	.After_Stand_Init
.Init_Stand	jsr	Init_TAS
.After_Stand_Init	clr.w	TEMET_Speed_X_Rest(a2)
		clr.w	TEMET_Speed_Y_Rest(a2)

.No_Stand_Init	cmp	#2,TEMET_New_Calc_Flag(a2)
		bne.s	.Walk_Init
		tst	TEMET_KollisionFlag(a2)
		beq.s	.Walk_Init
		tst.b	TEMET_Joy_X_Dir(a2)
		bne.s	.Walk_Init
		cmp	#Runter,TEMET_Joy_Up(a2)
		bne.s	.Walk_Init	
		move	TEMET_Speed_X(a2),d0
		tst	d0
		bpl.s	.Okdpos
		neg	d0
.Okdpos		cmp	#$0070,d0
		blo.s	.JumpToInit
		cmp	#$0600,d0
		bhi.s	.Walk_Init
		tst	TEMET_Dir_X(a2)
		bpl.s	.dirispos
		move.b	#Rechts,TEMET_Joy_X_Dir(a2)
		bra.s	.JumpToInit
.dirispos		move.b	#Links,TEMET_Joy_X_Dir(a2)
.JumpToInit	move	#NORMAL,TEMET_Status(a2)
		jsr	Init_TADuck
		bra.s	.No_Walk_Init
.Walk_Init	tst	TEMET_KollisionFlag(a2)
		bne.s	.No_Walk_Init
		tst	TEMET_Speed_Y(a2)
		bmi.s	.No_Walk_Init
		jsr	Init_TAW_Ausl
.No_Walk_Init	rts
*------------------------------------------------------------------------------
*------------	TEMET MAKE ANIM SPEED
*------------------------------------------------------------------------------
Make_TEMET_Anim_Spd	;Make TEMET-Special_Anim_Speed
.Test0		cmp.l	#Wackl_Left_H,TEMET_Anim_Tab(a2)
		bne.s	.Test1
		*--Init Wackel AnimSpeed
		move	#18,TEMET_Anim_Delay_I(a2)
		rts
.Test1		cmp.l	#Wackl_Right_H,TEMET_Anim_Tab(a2)
		bne.s	.Test2
		*--Init Wackel AnimSpeed
		move	#18,TEMET_Anim_Delay_I(a2)
		rts
.Test2		*--*>Make Norm Anim Speed
		moveq	#0,d0
		moveq	#0,d1
		move.b	TEMET_Speed_Y(a2),d0	***!!! +Hard
		tst.b	d0
		bpl.s	.okspos
		neg.b	d0
.okspos		lsr	#1,d0			;Y Speed weniger beachten
		move.b	TEMET_Speed_X(a2),d1	***!!! +Hard
		tst.b	d1
		bpl.s	.okspos1
		neg.b	d1
.okspos1		add	d1,d0
		add	d0,d0
		cmp	#DREHEN,TEMET_Status(a2)
		bne.s	.NoDrehTab
		lea	Anim_Delay_Tab_Dreh,a0
		bra.s	.DrehTab
.NoDrehTab	lea	Anim_Delay_Tab,a0
.DrehTab		move	(a0,d0),d0
		move	d0,TEMET_Anim_Delay_I(a2)
		rts
*------------------------------------------------------------------------------
Anim_Delay_Tab	;Max 16 Min 0
		dc.w	7
		dc.w	6,5,4,4,3,3,3,2,2,2,2,1,1,1,1,1
		dc.w	1,1,1,1,1,1,1,1,1,1
*------------------------------------------------------------------------------
Anim_Delay_Tab_Dreh	;Max 16 Min 0
		dc.w	3
		dc.w	2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1
		dc.w	1,1,1,1,1,1,1,1,1,1
*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
*------------	TEMET MAX SPEED
*------------------------------------------------------------------------------
Test_MAX_Speed	move	TEMET_MaxSpeed(a2),d1
		moveq	#0,d0
		move.b	TEMET_Speed_X(a2),d0	***!!! +Hard
		tst.b	d0
		bpl.s	.PosX1
		;Negativ
		neg.b	d0
		cmp	d1,d0
		bls.s	.SpeedOkX
		neg	d1
		move.b	d1,TEMET_Speed_X(a2)	***!!! +Hard
		move.b	#$ff,TEMET_Speed_X+1(a2)	***!!! +Soft
		bra.s	.SpeedOkX
.SpeedSameXNeg	clr.b	TEMET_Speed_X+1(a2)
		bra.s	.SpeedOkX
		;Positiv
.PosX1		cmp	d1,d0
		beq.s	.SpeedSameXNeg
		blo.s	.SpeedOkX
		move.b	d1,TEMET_Speed_X(a2)
		clr.b	TEMET_Speed_X+Soft(a2)
.SpeedOkX
		move	TEMET_MaxSpeed(a2),d1
		moveq	#0,d0
		move.b	TEMET_Speed_Y+Hard(a2),d0
		tst.b	d0
		bpl.s	.PosY1
		*--Negativ
		neg.b	d0
		cmp	d1,d0
		bls.s	.End
		neg	d1
		move.b	d1,TEMET_Speed_Y+Hard(a2)
		move.b	#$ff,TEMET_Speed_Y+Soft(a2)
		bra.s	.End
.SpeedSameYNeg	clr.b	TEMET_Speed_Y+Soft(a2)
		bra.s	.End
		*--Positiv
.PosY1		cmp	d1,d0
		;beq.s	.SpeedSameYNeg
		blo.s	.End
		subq	#1,d1
		move.b	d1,TEMET_Speed_Y+Hard(a2)
		clr.b	TEMET_Speed_Y+Soft(a2)
		;move.b	#$ff,TEMET_Speed_Y+Soft(a2)
.End		rts

*------------------------------------------------------------------------------
*------------	TEMET Speed Directions
*------------------------------------------------------------------------------
Make_Directions	tst	d4
		beq.s	.TDY
		bpl.s	.Positiv_X
.Negativ_X	move	#-1,TEMET_Dir_X(a2)
		bra.s	.TDY
.Positiv_X	move	#1,TEMET_Dir_X(a2)
.TDY		tst	d5
		bpl.s	.Positiv_Y
.Negativ_Y	move	#-1,TEMET_Dir_Y(a2)
		bra.s	.Back
.Positiv_Y	move	#1,TEMET_Dir_Y(a2)
.Back		rts

*------------------------------------------------------------------------------------
*-----------------	Speed Verhltnisse (Steigung) berechnen
*------------------------------------------------------------------------------------
Calc_New_Verh	cmp	#MOVER,TEMET_Status(a2)
		beq.s	.NoCalc
		tst	TEMET_KollisionFlag(a2)
		beq	.NoCalc
		cmp	#2,TEMET_New_Calc_Flag(a2)
		beq.s	.Clear_Y_Speed
		cmp	#1,TEMET_New_Calc_Flag(a2)
		bne.s	.NoCalc
		move.l	TEMET_Save_a1(a2),a1
		move	TEMET_Save_X_d2(a2),d2
		move	TEMET_Speed_X(a2),d0
		move	TEMET_Speed_Y(a2),d1
		jsr	Make_New_Speed
		jsr	Make_Directions
		move	d4,TEMET_Speed_X(a2)
		move	d5,TEMET_Speed_Y(a2)
.NoCalc		rts
.Clear_Y_Speed	clr.w	TEMET_Speed_Y(a2)
		rts

*------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------
Write_Temet_Koords:
		movem.l	d0-d7/a2,-(sp)
		lea	(a6),a2

		*--Test if Shield is on
		cmp	#3,TEMET_Shield_Flag(a2)
		beq	Show_Flash
		tst.b	Akt_Copper_Frame(a6)
		bne.s	.NormKoords
		tst	TEMET_Shield_Flag(a2)
		bne	ShieldsTUN

.NormKoords:
		move	TEMET_X_Position(a2),d0
		sub	Scr_X_Level_Pos(a6),d0
		add	#128,d0
		move	TEMET_Y_Position(a2),d1
		sub	Scr_Y_Level_Pos(a6),d1
		add	#128,d1
		move.l	TEMET_Akt_Anim_Pnt(a2),a0
		add	TAS_Y_Offset(a0),d1
		addq	#1,d1
		move	TAS_Anim_FlipStatus(a0),d2

		move	TAS_Anim_Offset(a0),d7

		lea	Nutz_Obj0,a0
		lea	(a0,d7.w),a0

		move.w	TEMET_Prio(a6),d3

		tst	TEMET_Been_HitTimer(a2)
		ble.s	.display
		tst.b	Akt_Copper_Frame(a6)
		bne.s	.display
		moveq	#10,d0
.display:
		bsr	Show_Player_Data

		movem.l	(sp)+,d0-d7/a2

		rts
*-------------------------------------------------------------------------------
*------------	Write FLASH Koords
Show_Flash:
		*--*>Farben fr FLASH
		cmp	#300,TEMET_Been_HitTimer(a2)
		bhs.s	.Okdoky
		addq.l	#4,Shield_Col_Pnt_Fla(a6)
		cmp	#200,TEMET_Been_HitTimer(a2)
		bhs.s	.Okdoky
		addq.l	#8,Shield_Col_Pnt_Fla(a6)
		cmp	#100,TEMET_Been_HitTimer(a2)
		bhs.s	.Okdoky
		add.l	#16,Shield_Col_Pnt_Fla(a6)
.Okdoky		move.l	Shield_Col_Pnt_Fla(a6),a0
		tst	(a0)
		bpl.s	.okpost
		move.l	#Set_Which_Shield_FL,Shield_Col_Pnt_Fla(a6)
		move.l	Shield_Col_Pnt_Fla(a6),a0
.okpost		addq.l	#4,Shield_Col_Pnt_Fla(a6)

		move.l	(a0),a0
		lea	Fade_Struktur+Fade_Palette+64(a6),a1
		move	(a0)+,20(a1)
		move	(a0)+,22(a1)
		move	(a0)+,24(a1)

		*--*>TestENDE
		subq	#1,TEMET_Been_HitTimer(a2)
		bne.s	.OKNOTOUT
		tst	TEMET_Shield_Save(a2)
		beq.s	.NormalOut
		cmp	#1,TEMET_Shield_Save(a2)
		beq.s	.NormShieldInit
		cmp	#2,TEMET_Shield_Save(a2)
		beq.s	.TimeShieldInit
		bra.s	.NormalOut
.TimeShieldInit	*--*>Time Shield
		move	#2,TEMET_Shield_Flag(a2)
		move	#12*60,TEMET_Been_HitTimer(a2)
		clr.w	TEMET_Shield_Save(a2)
		bra.s	.OKNOTOUT
.NormShieldInit	*--*>Normales Shield
		move	#1,TEMET_Shield_Flag(a2)
		move	#-1,TEMET_Been_HitTimer(a2)
		clr.w	TEMET_Shield_Save(a2)
		bra.s	.OKNOTOUT
.NormalOut	*--*>Einfach flash austragen
		move	#65,TEMET_Been_HitTimer(a2)
		clr.w	TEMET_Shield_Save(a2)
		clr.w	TEMET_Shield_Flag(a2)
.OKNOTOUT:
		lea	Flash_Obj0(a6),a0

		tst.b	Akt_Copper_Frame(a6)
		bne.s	.Frame_One
.Frame_Zero	tst.b	TEMET_Shield_ACnt_1(a2)
		beq.s	.AddToSecond
		bra.s	.AddToFirst
.Frame_One	tst.b	TEMET_Shield_ACnt_1(a2)
		bne.s	.AddToSecond
		bra.s	.AddToFirst
.AddToSecond	*--*>Erste addieren
		move.w	#$0000,6(a0)
		move.w	#$0010,12(a0)
		bra.s	.NoAddOthers
.AddToFirst	*--*>Zweite addieren
		move.w	#$0010,6(a0)
		move.w	#$0000,12(a0)

.NoAddOthers	*--*>Koordinaten schreiben
		lea	Flash_Koords_Tab(a6),a5
		move	Flash_Koords_Offs(a6),d5
		cmp	#4*10,d5
		blo.s	.OkOffset
		clr.w	Flash_Koords_Offs(a6)
		moveq	#0,d5
.OkOffset
		move	TEMET_X_Position(a2),(a5,d5)
		move.w	TEMET_Y_Position(a2),2(a5,d5)
		addq	#4,Flash_Koords_Offs(a6)

		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoFrontAdd
		add	#5*4,d5
		cmp	#4*10,d5
		blo.s	.NoFrontAdd
		sub	#4*10,d5		
.NoFrontAdd
		*--*>Init Koords to Copperlist
		move	(a5,d5),d0
		move	2(a5,d5),d1

		sub	Scr_X_Level_Pos(a6),d0
		add	#128,d0
		sub	Scr_Y_Level_Pos(a6),d1
		add	#128+12,d1
		moveq	#0,d2

		move.w	TEMET_Prio(a6),d3

		lea	Flash_Obj0(a6),a0

		bsr	Show_Player_Data

		move.w	(a5,d5),d0
		move.w	2(a5,d5),d1
		neg.w	d0
		neg.w	d1

		*--Write Shields Koords Shield 1
.Init_Spr_2
		*--*>Get NEW Vals
		add	#2*4,d5
		cmp	#4*10,d5
		blo.s	.NoOverflow
		sub	#4*10,d5		
.NoOverflow
		*--*>Init Koords to Kopperlist
		add	(a5,d5),d0
		add	2(a5,d5),d1

		lea	Flash_Obj0(a6),a0
		move.b	d0,14(a0)
		move.b	d1,15(a0)

.End:
		movem.l	(sp)+,d0-d7/a2

		rts

Flash_Default:
	dc.w	$3000+Shield_raw-Player_raw

	dc.w	$4020+$8000
	dc.w	$0F00
	dc.w	CBASE+$0000
	dc.b	0
	dc.b	0

	dc.w	$0F00
	dc.w	CBASE+$0000
	dc.b	0
	dc.b	0

	dc.w	-1

*- - - - - - - - - - - - - - - - - - - - - - - - -
*- - - - - - - - - - - - - - - - - - - - - - - - -
ShieldsTUN	*--*>Shields TIME und NORm
		cmp	#1,TEMET_Shield_Flag(a2)
		bne.s	.Time_Shield_Cols

.Norm_Shield_Cols	*--*>Farben fr Norm Shield

		move.l	Shield_Col_Pnt_Norm(a6),a0
		tst	(a0)
		bpl.s	.okpos
		move.l	#Set_Which_Shield_CN,Shield_Col_Pnt_Norm(a6)
		move.l	Shield_Col_Pnt_Norm(a6),a0
.okpos		addq.l	#4,Shield_Col_Pnt_Norm(a6)
		bra.s	.Write_Colours

.Time_Shield_Cols	*--*>Farben fr Time Shield

		cmp	#200,TEMET_Been_HitTimer(a2)
		bhs.s	.Okdoky
		addq.l	#4,Shield_Col_Pnt_Time(a6)
		cmp	#100,TEMET_Been_HitTimer(a2)
		bhs.s	.Okdoky
		addq.l	#8,Shield_Col_Pnt_Time(a6)
		cmp	#50,TEMET_Been_HitTimer(a2)
		bhs.s	.Okdoky
		add.l	#16,Shield_Col_Pnt_Time(a6)
.Okdoky		move.l	Shield_Col_Pnt_Time(a6),a0
		tst	(a0)
		bpl.s	.okpost
		move.l	#Set_Which_Shield_CT,Shield_Col_Pnt_Time(a6)
		move.l	Shield_Col_Pnt_Time(a6),a0
.okpost		addq.l	#4,Shield_Col_Pnt_Time(a6)

.Write_Colours	move.l	(a0),a0
		lea	Fade_Struktur+Fade_Palette+64(a6),a1
		move	(a0)+,20(a1)
		move	(a0)+,22(a1)
		move	(a0)+,24(a1)

		*--*>Get Pointers of Shield
		moveq	#0,d0
		move.b	TEMET_Shield_ACnt_1(a2),d0
		add.w	d0,d0
		add.w	d0,d0
		lea	Norm_Shield_Pnt(pc),a0
		cmp	#1,TEMET_Shield_Flag(a2)
		beq.s	.NoTime_Shield
		lea	Time_Shield_Pnt(pc),a0
.NoTime_Shield:
		adda.w	d0,a0
		move.l	(a0),a0

		*--*>Test Ende Time Shield
		cmp	#1,TEMET_Shield_Flag(a2)
		beq.s	.NoEndTimeShield
		tst	TEMET_Been_HitTimer(a2)
		bne.s	.NoEndTimeShield
		tst	TEMET_Shield_Save(a2)
		beq.s	.NoSuchThings
		move	TEMET_Shield_Save(a2),TEMET_Shield_Flag(a2)
		move	#-1,TEMET_Been_HitTimer(a2)
		bra.s	.NoEndTimeShield
.NoSuchThings	clr.w	TEMET_Shield_Flag(a2)
.NoEndTimeShield	*--Get AnfKoords

		move	TEMET_X_Position(a2),d0
		sub	Scr_X_Level_Pos(a6),d0
		add	#128-16,d0
		move	TEMET_Y_Position(a2),d1
		sub	Scr_Y_Level_Pos(a6),d1
		add	#128,d1
		moveq	#0,d2

		move.w	TEMET_Prio(a6),d3

		bsr	Show_Player_Data
.End
		movem.l	(sp)+,d0-d7/a2
		rts

*------------------------------------------------------------------------------
*- - - - - - - - - - - - - - - - - - - - - - - - -
Set_Which_Shield_CT:
		dc.l	Shield_Cols_1,Shield_Cols_1,Shield_Cols_2
		dc.l	Shield_Cols_2,Shield_Cols_3,Shield_Cols_3
		dc.l	Shield_Cols_4,Shield_Cols_4,Shield_Cols_5
		dc.l	Shield_Cols_5,Shield_Cols_6,Shield_Cols_6
		dc.l	Shield_Cols_7,Shield_Cols_7,Shield_Cols_8
		dc.l	Shield_Cols_8,Shield_Cols_9,Shield_Cols_9
		dc.l	Shield_Cols_8,Shield_Cols_8,Shield_Cols_7
		dc.l	Shield_Cols_7,Shield_Cols_6,Shield_Cols_6
		dc.l	Shield_Cols_5,Shield_Cols_5,Shield_Cols_4
		dc.l	Shield_Cols_4,Shield_Cols_3,Shield_Cols_3
		dc.l	Shield_Cols_2,Shield_Cols_2,Shield_Cols_1
		dc.l	Shield_Cols_1
		dc.l	-1,-1,-1,-1
		dc.l	-1,-1,-1,-1
Set_Which_Shield_CN:
		dc.l	Shield_Cols_11,Shield_Cols_11,Shield_Cols_12
		dc.l	Shield_Cols_12,Shield_Cols_13,Shield_Cols_13
		dc.l	Shield_Cols_14,Shield_Cols_14,Shield_Cols_15
		dc.l	Shield_Cols_15,Shield_Cols_16,Shield_Cols_16
		dc.l	Shield_Cols_17,Shield_Cols_17,Shield_Cols_18
		dc.l	Shield_Cols_18,Shield_Cols_19,Shield_Cols_19
		dc.l	Shield_Cols_18,Shield_Cols_18,Shield_Cols_17
		dc.l	Shield_Cols_17,Shield_Cols_16,Shield_Cols_16
		dc.l	Shield_Cols_15,Shield_Cols_15,Shield_Cols_14
		dc.l	Shield_Cols_14,Shield_Cols_13,Shield_Cols_13
		dc.l	Shield_Cols_12,Shield_Cols_12,Shield_Cols_11
		dc.l	Shield_Cols_11
		dc.l	-1,-1,-1,-1
		dc.l	-1,-1,-1,-1
Set_Which_Shield_FL:
		dc.l	Shield_Cols_21,Shield_Cols_21,Shield_Cols_22
		dc.l	Shield_Cols_22,Shield_Cols_23,Shield_Cols_23
		dc.l	Shield_Cols_24,Shield_Cols_24,Shield_Cols_25
		dc.l	Shield_Cols_25,Shield_Cols_26,Shield_Cols_26
		dc.l	Shield_Cols_27,Shield_Cols_27,Shield_Cols_28
		dc.l	Shield_Cols_28,Shield_Cols_29,Shield_Cols_29
		dc.l	Shield_Cols_28,Shield_Cols_28,Shield_Cols_27
		dc.l	Shield_Cols_27,Shield_Cols_26,Shield_Cols_26
		dc.l	Shield_Cols_25,Shield_Cols_25,Shield_Cols_24
		dc.l	Shield_Cols_24,Shield_Cols_23,Shield_Cols_23
		dc.l	Shield_Cols_22,Shield_Cols_22,Shield_Cols_21
		dc.l	Shield_Cols_21
		dc.l	-1,-1,-1,-1
		dc.l	-1,-1,-1,-1
*- - - - - - - - - - - - - - - - - - - - - - - - -
Shield_Cols_1	dc.w	$0FFF,$0DFF,$0CEF
Shield_Cols_2	dc.w	$0DFF,$0CEF,$09CF
Shield_Cols_3	dc.w	$0CEF,$09CF,$069F
Shield_Cols_4	dc.w	$09CF,$069F,$025F
Shield_Cols_5	dc.w	$069F,$025F,$002F
Shield_Cols_6	dc.w	$025F,$002F,$000D
Shield_Cols_7	dc.w	$002F,$000D,$000A
Shield_Cols_8	dc.w	$000D,$000A,$0007
Shield_Cols_9	dc.w	$000A,$0007,$0004
*- - - - - - - - - - - - - - - - - - - - - - - - -
Shield_Cols_11	dc.w	$0FFF,$0FFD,$0EFC
Shield_Cols_12	dc.w	$0FFD,$0EFC,$0CF9
Shield_Cols_13	dc.w	$0EFC,$0CF9,$09F6
Shield_Cols_14	dc.w	$0CF9,$09F6,$05F2
Shield_Cols_15	dc.w	$09F6,$05F2,$02F0
Shield_Cols_16	dc.w	$05F2,$02F0,$00D0
Shield_Cols_17	dc.w	$02F0,$00D0,$00A0
Shield_Cols_18	dc.w	$00D0,$00A0,$0070
Shield_Cols_19	dc.w	$00A0,$0070,$0040
*- - - - - - - - - - - - - - - - - - - - - - - - -
Shield_Cols_21	dc.w	$0FFF,$0FFD,$0FEC
Shield_Cols_22	dc.w	$0FFD,$0FEC,$0FC9
Shield_Cols_23	dc.w	$0FEC,$0FC9,$0F96
Shield_Cols_24	dc.w	$0FC9,$0F96,$0F52
Shield_Cols_25	dc.w	$0F96,$0F52,$0F20
Shield_Cols_26	dc.w	$0F52,$0F20,$0D00
Shield_Cols_27	dc.w	$0F20,$0D00,$0A00
Shield_Cols_28	dc.w	$0D00,$0A00,$0700
Shield_Cols_29	dc.w	$0A00,$0700,$0400

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
GetNext_TEMET_Frame:	*--Timet original Colours aktivieren
		*--*>Test if unverwundbar durch Hit oder Shield

		cmp	#3,TEMET_Shield_Flag(a2)
		beq	.Norm_NextFrame
		tst	TEMET_Shield_Flag(a2)
		bne.s	.NoNoNormal
		tst	TEMET_Been_HitTimer(a2)
 		beq.s	.Norm_NextFrame
.NoNoNormal	*--*>Testen ob trotzdem neue Daten geholt werden mssen
		tst	TEMET_Anim_Delay(a2)
		bne.s	.NoNewData
		*--*>Get New Data
		move.l	TEMET_Next_Anim(a2),a0
		cmp	#TEMET_ANIM_END,(a0)
		bne.s	.NoNewPointerGD
		move.l	TAT_Next_AnimTable(a0),a0
		move.l	a0,TEMET_Next_Anim(a2)
.NoNewPointerGD	*--Init Frame
		move	TAT_Anim(a0),d0
		addq.l	#2,TEMET_Next_Anim(a2)
		mulu	#TAS_ENTRY_LENGTH,d0
		lea	TAS_Tab,a0
		add	d0,a0
		move.l	a0,TEMET_Akt_Anim_Pnt(a2)
.NoNewData	*--*>Testen ob Been HitTimer gesubt werden soll
		tst	TEMET_Been_HitTimer(a2)
		bmi.s	.NoSubTimer
		beq.s	.NoSubTimer
		subq	#1,TEMET_Been_HitTimer(a2)
		bne.s	.NoSubTimer
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoSubTimer
		addq	#1,TEMET_Been_HitTimer(a2)
.NoSubTimer	*--*> Testen ob TEMET zu sehen ist oder (Leer oder shield)
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.Old_Norm_NextFrame
		*---*> Shield oder blinken ist an
 		tst	TEMET_Shield_Flag(a2)
		beq.s	.Init_Blink
		bra	.InShield
		*--*>Shields oder Leer initialisieren
.Init_Blink	*--Empty oder Shield wird initialisiert
		move	#EMPTY_NR,d0
		mulu	#TAS_ENTRY_LENGTH,d0
		lea	TAS_Tab,a0
		add	d0,a0
		bra.s	.Set_Akt_Frame
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Old_Norm_NextFrame	*--*>keinen neuen Pointer (alten setzen)
		move.l	TEMET_Akt_Anim_Pnt(a2),a0
		bra.s	.Set_Akt_Frame
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Norm_NextFrame	*--NORM Get Bases
		move.l	TEMET_Next_Anim(a2),a0
		cmp	#TEMET_ANIM_END,(a0)
		bne.s	.NoNewPointer
		move.l	TAT_Next_AnimTable(a0),a0
		move.l	a0,TEMET_Next_Anim(a2)
.NoNewPointer	*--Init Frame
		move	TAT_Anim(a0),d0
		addq.l	#2,TEMET_Next_Anim(a2)
		mulu	#TAS_ENTRY_LENGTH,d0
		lea	TAS_Tab,a0
		add	d0,a0
		move.l	a0,TEMET_Akt_Anim_Pnt(a2)

.Set_Akt_Frame	*--*>Frame in a0 setzen
		move	TAS_Koll_Offs_X(a0),TEMET_X_Koll_Offset(a2)
		move	TAS_Foot_Offs_X(a0),TEMET_X_Foot_Offset(a2)
		move	TAS_Foot_Offs_Y(a0),TEMET_Y_Foot_Offset(a2)

		cmp	#3,TEMET_Shield_Flag(a2)
		beq	InFlash

.End		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.InShield
		addq.b	#1,TEMET_Shield_ACnt_1(a2)
		and.b	#3,TEMET_Shield_ACnt_1(a2)
		rts
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Norm_Shield_Pnt	dc.l	Shield_Obj0
		dc.l	Shield_Obj1
		dc.l	Shield_Obj2
		dc.l	Shield_Obj3

Time_Shield_Pnt	dc.l	Shield_Obj4
		dc.l	Shield_Obj5
		dc.l	Shield_Obj6
		dc.l	Shield_Obj7
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*------------------------------------------------------------------------------
InFlash		*--Shield Colours aktivieren
	       	;move	#TEMET_SET_COLOURS,TemetSlots_InitCol1
		;move	#NOTWORK,TemetSlots_InitCol
		*--*>Anim Heraussuchen
		lea	Flash.Left.Gfx,a0
		lea	Flash.Right.Gfx,a1
		lea	Flash.Left.Gfx,a3
		lea	Flash.Right.Gfx,a4
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoAddCount
		addq.b	#1,TEMET_Shield_ACnt_1(a2)
		and.b	#1,TEMET_Shield_ACnt_1(a2)
.NoAddCount	tst.b	Akt_Copper_Frame(a6)
		bne.s	.Frame_One
.Frame_Zero	tst.b	TEMET_Shield_ACnt_1(a2)
		beq.s	.AddToSecond
		bra.s	.AddToFirst
.Frame_One	tst.b	TEMET_Shield_ACnt_1(a2)
		bne.s	.AddToSecond
		bra.s	.AddToFirst
.AddToSecond	*--*>Erste addieren
		add	#33*4,a0
		add	#33*4,a1
		bra.s	.NoAddOthers
.AddToFirst	*--*>Zweite addieren
		add	#33*4,a3
		add	#33*4,a4
.NoAddOthers	*--Write Sprite Bases to Pointers
		;lea	SS01+4,a5
		;move.l	a0,d5		;Get Sprite Base
		;swap	d5
		;move	d5,2(a5)
		;swap	d5
		;move	d5,6(a5)
		;move.l	a1,d5		;Get Sprite Base
		;swap	d5
		;move	d5,10(a5)
		;swap	d5
		;move	d5,14(a5)
		;move.l	a3,d5		;Get Sprite Base
		;swap	d5
		;move	d5,18(a5)
		;swap	d5
		;move	d5,22(a5)
		;move.l	a4,d5		;Get Sprite Base
		;swap	d5
		;move	d5,26(a5)
		;swap	d5
		;move	d5,30(a5)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Flash.Left.Gfx		;incbin	Global_Includes/Flash.Left.Spr
Flash.Right.Gfx		;incbin	Global_Includes/Flash.Right.Spr
*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
Make_TEMET_X_Venti	*--*>BESCHLEUNIGEN oder BREMSEN
		tst.b	TEMET_Joy_X_Dir(a2)
		beq.s	.END
		bmi.s	.X_Dir_Be_Neg
.X_Dir_Be_Pos	tst	TEMET_Dir_X(a2)
		bpl.s	.SpeedUp_Pos
		bra	.SpeedDown_Neg
.X_Dir_Be_Neg	tst	TEMET_Dir_X(a2)
		bmi.s	.SpeedUp_Neg
		bra.s	.SpeedDown_Pos
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.SpeedUp_Pos	*--Beschleunigen >Speed addieren
.Norm1		add	#$40,TEMET_Speed_X(a2)
		rts
.SpeedDown_Pos	*--Bremsen >Speed subtrahieren
		sub	#$60,TEMET_Speed_X(a2)
		rts
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.SpeedUp_Neg	*--Beschleunigen >Speed subtrahieren
		sub	#$40,TEMET_Speed_X(a2)
		rts
.SpeedDown_Neg	*--Bremsen >Speed addieren
		add	#$60,TEMET_Speed_X(a2)
		rts
.END		rts
*------------------------------------------------------------------------------
Make_TEMET_Speed	*--test if Duck Bremsung
		cmp	#Runter,TEMET_Joy_Up(a2)
		bne.s	.NoDuck
		tst.b	TEMET_Speed_X(a2)
		beq.s	.NoDuck
		cmp	#2,TEMET_New_Calc_Flag(a2)
		bne.s	.NoDuck
		tst.b	TEMET_Joy_X_Dir(a2)
		bne.s	.NoDuck
		tst	TEMET_Dir_X(a2)
 		bpl	.SpeedDown_Pos
		bra	.SpeedDown_Neg
.NoDuck		;Speed Change ? (JoyStick auswerten)
		tst.b	TEMET_Joy_X_Dir(a2)
		bne.s	.NotAuslaufen
		;X-Richtung nicht gedrckt
		tst	TEMET_Speed_X+Hard(a2)
		bne.s	.Auslaufen
		bra	.NoSpeedChangeX
		;STEHEN (ROUTINE WIE DEUTEN USW.)
		;
.Auslaufen	*--LANGSAM AUSLAUFEN
		jsr	Init_TAW_Ausl
		tst	TEMET_Dir_X(a2)
		bmi.s	.NegSpeed

.PosSpeed		;Auslaufen > Speed subtrahieren
		move	TEMET_Speed_X(a2),d0
		sub	TEMET_Auslaufen(a2),d0
		tst	d0
		bpl.s	.NoDirChangePos
		;Wenn Speed 0-> keine Richtung ndern Rest auf 0
		moveq	#0,d0
.NoDirChangePos	move	d0,TEMET_Speed_X(a2)
		bra	.NoSpeedChangeX

.NegSpeed		;Auslaufen > Speed addieren
		move	TEMET_Speed_X(a2),d0
		add	TEMET_Auslaufen(a2),d0
		tst	d0
		bmi.s	.NoDirChangeNeg
		;Wenn Speed 0-> keine Richtung ndern Rest auf 0
		moveq	#0,d0
.NoDirChangeNeg	move	d0,TEMET_Speed_X(a2)
		bra	.NoSpeedChangeX

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NotAuslaufen	;BESCHLEUNIGEN oder BREMSEN
		move.l	TEMET_Save_a1(a2),a1
		tst.b	TEMET_Joy_X_Dir(a2)
		bmi.s	.X_Dir_Be_Neg
.X_Dir_Be_Pos	tst	TEMET_Dir_X(a2)
		bpl.s	.SpeedUp_Pos
		bra	.SpeedDown_Neg
.X_Dir_Be_Neg	tst	TEMET_Dir_X(a2)
		bmi.s	.SpeedUp_Neg
		bra.s	.SpeedDown_Pos

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.SpeedUp_Pos	;Beschleunigen >Speed addieren
		cmp	#1,TEMET_New_Calc_Flag(a2)
		bne.s	.Norm1
		cmp	#DREHEN,TEMET_Status(a2)
		bne.s	.Norm1
		tst.b	Block_Dir_X(a1)
		beq.s	.Norm1
		bmi	.NoSpeedChangeX
.Norm1		jsr	Init_TAW_Right
		move	TEMET_Speed_X(a2),d0
		add	TEMET_Acceleration(a2),d0
		move	d0,TEMET_Speed_X(a2)
		bra	.NoSpeedChangeX

.SpeedDown_Pos	;Bremsen >Speed subtrahieren
		cmp	#1,TEMET_New_Calc_Flag(a2)
		bne.s	.Norm2
		cmp	#DREHEN,TEMET_Status(a2)
		bne.s	.Norm2
		tst.b	Block_Dir_X(a1)
		beq.s	.Norm2
		bpl.s	.NoSpeedChangeX
.Norm2		jsr	Init_TAB_Right
		move	TEMET_Speed_X(a2),d0
		sub	TEMET_Bremsen(a2),d0
		move	d0,TEMET_Speed_X(a2)
		bra.s	.NoSpeedChangeX

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.SpeedUp_Neg	;Beschleunigen >Speed subtrahieren
		cmp	#1,TEMET_New_Calc_Flag(a2)
		bne.s	.Norm3
		cmp	#DREHEN,TEMET_Status(a2)
		bne.s	.Norm3
		tst.b	Block_Dir_X(a1)
		beq.s	.Norm3
		bpl.s	.NoSpeedChangeX
.Norm3		jsr	Init_TAW_Left
		move	TEMET_Speed_X(a2),d0
		sub	TEMET_Acceleration(a2),d0
		move	d0,TEMET_Speed_X(a2)
		bra.s	.NoSpeedChangeX

.SpeedDown_Neg	;Bremsen >Speed addieren
		cmp	#1,TEMET_New_Calc_Flag(a2)
		bne.s	.Norm4
		cmp	#DREHEN,TEMET_Status(a2)
		bne.s	.Norm4
		tst.b	Block_Dir_X(a1)
		beq.s	.Norm4
		bmi.s	.NoSpeedChangeX
.Norm4		jsr	Init_TAB_Left
		move	TEMET_Speed_X(a2),d0
		add	TEMET_Bremsen(a2),d0
		move	d0,TEMET_Speed_X(a2)
		;bra.s	.NoSpeedChangeX

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NoSpeedChangeX	rts
*------------------------------------------------------------------------------
*-----------	MAKE TEMET ScrollSpeed
*------------------------------------------------------------------------------
Make_ScrollSpeed	*--Make X Speed
		moveq	#1,d0
		move	TEMET_Scr_X_Value(a2),d1
		tst	d1
		bpl.s	.okXpos
		moveq	#-1,d0
		neg	d1
.okXpos		lea	SpeedProzTab,a0
		add	d1,d1
		move	(a0,d1),d1
		cmp	#8,d1
		bls	.okXlow
		moveq	#8,d1
.okXlow		muls	d0,d1
		move	d1,Scr_X_Speed(a6)
.Y_Speed		*--Make Y Speed
		moveq	#1,d0
		move	TEMET_Scr_Y_Value(a2),d1
		tst	d1
		bpl.s	.okYpos
		moveq	#-1,d0
		neg	d1
.okYpos		add	d1,d1
		move	(a0,d1),d1
		cmp	#8,d1
		bls	.okYlow
		moveq	#8,d1
.okYlow		muls	d0,d1
		move	d1,Scr_Y_Speed(a6)
		
.Return		;move	#20,Scr_AnzSupplyPlates(a6)
		rts

*------------------------------------------------------------------------------
SpeedProzTab	dc.w	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	
		dc.w	1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8
		dc.w	9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
		dc.w	16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
*----------	JoyStickRoutine
*------------------------------------------------------------------------------
Rechts		=	1
Links		=	-1
Runter		=	1
Hoch		=	-1
;--------------------------------------------------------------------------
*---------------------------------------------------------------------------
;--------------------------------------------------------------------------
TEMET_JoyPad:
		clr.b	TEMET_Joy_X_Dir(a6)
		clr.w	TEMET_Joy_Up(a6)
		tst	GlobalJoyFire_S(a6)
		beq.s	.NoJump
		tst	TEMET_Dir_Y(a6)
		bpl.s	.Test_OtherFacts
		tst.b	TEMET_Joy_Y_Dir(a6)
		bne.s	.Init_Jump
.Test_OtherFacts
		addq	#1,TEMET_Joy_Up_Count(a6)
		cmp	#10,TEMET_Joy_Up_Count(a6)
		bhs.s	.Clear_Jump
		cmp	#MOVER,TEMET_Status(a6)
		beq.s	.Init_Jump

.testNorm	cmp	#SPRINGEN,TEMET_Status(a6)
		beq.s	.Test1

		cmp	#FRAME_NETT,TEMET_Fallen_Cnt(a6)
		bhs.s	.Clear_Jump
		bra.s	.Init_Jump

.Test1		tst	TEMET_KollisionFlag(a6)
		beq.s	.Clear_Jump

.Init_Jump	move.b	#Hoch,TEMET_Joy_Y_Dir(a6)
		bra.s	.Make_Dirs

.NoJump		clr.w	TEMET_Joy_Up_Count(a6)
.Clear_Jump	clr.b	TEMET_Joy_Y_Dir(a6)
.Make_Dirs
		move.b	GlobalJoyX(a6),TEMET_Joy_X_Dir(a6)
		move.b	GlobalJoyY(a6),d0
		ext.w	d0
		move	d0,TEMET_Joy_Up(a6)
.Back		rts

FRAME_NETT	=7
*------------------------------------------------------------------------------
*------------	TEMET Structure
*------------------------------------------------------------------------------
*-----------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
**************************************************************************************
****************	STATUS-SYSTEM
**************************************************************************************
*------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
NO_WING		=0
LOW_WING		=1
MID_WING		=2
FULL_WING		=3
*-------------------------------------------------------------------------------------
;HL1=$fb0
;HL2=$f00
;HL3=$000
;HR0=$000
;HR1=$3f3
;HR2=$0a0
;HR3=$000
;*--------
;;L1 =$fe8
;;L2 =$d54
;;L3 =$710
;L1 =$fff
;L2 =$f55
;L3 =$500
;C1 =$fff
;C2 =$888
;C3 =$444
;*- - - - - -
;GEM1=$fff
;GEM2=$888
;GEM3=$444
;FL1 =$fff
;FL2 =$888
;FL3 =$444
;TT1 =$fff
;TT2 =$888
;TT3 =$444
;TL1 =$fff;$aff
;TL2 =$888;$d54
;TL3 =$444;$710
*------------------------------------------------------------------------------
HEAD=0*4
GEM=1*4
BOMBE=2*4
WING=3*4
XWING=4*4
SWIM=5*4
FLASH=6*4
XFLASH=7*4
BOX=8*4
IEMPTY=9*4
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SS_GFX		;incbin	Global_Includes/Display_Icons1
		ds.b	4*16
SS_NUMB_L		;incbin	Global_Includes/Display.Numbers_Left
SS_NUMB_R		;incbin	Global_Includes/Display.Numbers_Right
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*------------------------------------------------------------------------------
Initialize_Status	*--*>Statuszeilen initialisieren
		rts
*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
Write_Life_Head	*--*>head schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_BOMB	*--*>head schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_GEM		*--*>head schreiben
		rts
*------------------------------------------------------------------------------
Write_Wing	*--*>Wing Fhigkeit Schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_Flash	*--*>Flash Fhigkeit Schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_Swim	*--*>Schwimm Fhigkeit Schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_Box		*--*>Box Fhigkeit Schreiben
		rts
*------------------------------------------------------------------------------
Write_Anz_Gems	*--*>Anz Lifes Schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_Anz_Bombs	*--*>Anz Lifes Schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_Anz_Lifes	*--*>Anz Lifes Schreiben
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Write_Continues	*--*>Write Continues
.EndWrite		rts
*------------------------------------------------------------------------------
*--------------	HitPointleiste aufbauen

*------------------	STATUS ZUSTNDE
NORMAL		=	0
SPRINGEN		=	1
FALLEN		=	2
DREHEN		=	3
FLIEGEN		=	4
MOVER		=	6
VENTILATOR	=	7
SEILBAHN		=	8
NOCTRL		=	9
SPRUNG		=	12
*------------------------------------------------------------------------------
*----------	TEMET_Anim_Structure
*------------------------------------------------------------------------------
		rsreset
TAS_Koll_Y_Anf	rs.b	1	; Linkes Sprite Y Offset
TAS_Koll_Y_Height	rs.b	1	; Rechtres Sprite Y Offset
TAS_Koll_X_Anf	rs.b	1	; Links Y Hhe
TAS_Koll_X_Width	rs.b	1	; Rechts Y Hhe
TAS_Anim_Offset	rs.w	1	; ANIM OFFSET
TAS_Anim_FlipStatus	rs.w	1	; ANIM FLIPPER
TAS_Koll_Offs_X	rs.w	1	; Offset von Links Oben auf Foot
TAS_Foot_Offs_X	rs.w	1	; Offset von Links Oben auf Foot
TAS_Foot_Offs_Y	rs.w	1	; Offset von Links Oben auf Foot
TAS_Height	rs.w	1	; Hhe der Anim inclusive Ctrl Line
TAS_Y_Offset	rs.w	1	; Offset auf TEMET Pos nur fr Darstellung
TAS_ENTRY_LENGTH	rs.w	0

NOFLIP		=0
XFLIP		=1
YFLIP		=2
XYFLIP		=3

TAS_Tab		;WALKING LEFT
		;Walk left ;0
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_1
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	49	;HEIGHT
		dc.w	-7	;Y OFFSET
		;Walk left ;1
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	50	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk left ;2
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_3	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk left ;3
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_4	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk left ;4
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_5	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	49	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk left ;5
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_6	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	49	;HEIGHT
		dc.w	-5	;Y OFFSET
		;Walk left ;6
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_7	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk left ;7
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_8	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	52	;HEIGHT
		dc.w	-7	;Y OFFSET
		;Walk right ;8-WALKING RIGHT
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_1	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	49	;HEIGHT
		dc.w	-7	;Y OFFSET
		;Walk right ;9
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_2	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	50	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk right ;10
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_3	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk right ;11
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_4	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk right ;12
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_5	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	49	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk right ;13
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_6	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	49	;HEIGHT
		dc.w	-5	;Y OFFSET
		;Walk right ;14
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_7	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Walk right ;15
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	WALKER_8	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-7	;Y OFFSET
		;Jump Left ;16-SPRINGEN LINKS
		dc.b	11	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	JUMPER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	52	;HEIGHT
		dc.w	-8	;Y OFFSET
		;Jump Left ;17
		dc.b	11	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	JUMPER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	48	;HEIGHT
		dc.w	-7	;-13;Y OFFSET
		;Jump Left ;18
		dc.b	11	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	JUMPER_3	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	60	;HEIGHT
		dc.w	-19	;-15;Y OFFSET
		;Ducken Left ;19
		dc.b	23	;TAS_Koll_Y_Up
		dc.b	16	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	DUCKER	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	39	;HEIGHT
		dc.w	+13	;Y OFFSET
		;Jump Right ;20-SPRINGEN RECHTS
		dc.b	11	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	JUMPER_1	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	52	;HEIGHT
		dc.w	-8	;Y OFFSET
		;Jump Right ;21
		dc.b	11	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	JUMPER_2	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	48	;HEIGHT
		dc.w	-7	;-13;Y OFFSET
		;Jump Right ;22
		dc.b	11	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	JUMPER_3	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	60	;HEIGHT
		dc.w	-19	;-15;Y OFFSET
		;Ducken Right ;23
		dc.b	23	;TAS_Koll_Y_Up
		dc.b	16	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	DUCKER	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	39	;HEIGHT
		dc.w	+13	;Y OFFSET
		;Brems Left ;24-BREMSEN LINKS
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	BREMSER	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	50	;HEIGHT
		dc.w	-5	;Y OFFSET
		;Brems Right ;25-BREMSEN Rechts
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	BREMSER	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	50	;HEIGHT
		dc.w	-5	;Y OFFSET
		;Stand Left ;26-STEHEN LINKS
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	ATMER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Stand Right ;27-STEHEN Rechts
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	ATMER_1	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;DREHEN Links1 ;28
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links2 ;29
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links3 ;30
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_3	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links4 ;31
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_4	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links5 ;32
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_1	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links6 ;33
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_2	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links7 ;34
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_3	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Links8 ;35
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_4	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;36
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;37
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;38
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_3	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;39
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_4	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;40
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_1	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;41
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_2	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;42
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_3	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
		;DREHEN Rechts1 ;43
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DREHER_4	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+12	;Y OFFSET
*-------------------------------------------------------------------------------------
		;FLIEGEN LOOPING LINKS 1 *-44-51
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+5	;Y OFFSET
		;FLIEGEN LOOPING LINKS 2
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	36	;HEIGHT
		dc.w	+6	;Y OFFSET
		;FLIEGEN LOOPING LINKS 3
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_3	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+9	;Y OFFSET
		;FLIEGEN LOOPING LINKS 4
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_4
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	32	;HEIGHT
		dc.w	+8	;Y OFFSET
		;FLIEGEN LOOPING LINKS 5
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_1	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+11	;Y OFFSET
		;FLIEGEN LOOPING LINKS 6
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_5
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+8	;Y OFFSET
		;FLIEGEN LOOPING LINKS 7
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_3	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+7	;Y OFFSET
		;FLIEGEN LOOPING LINKS 8
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_4	
		dc.w	YFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	32	;HEIGHT
		dc.w	+10	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 1 *-	52-59
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_1	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+5	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 2
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_2	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	36	;HEIGHT
		dc.w	+6	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 3
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_3	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+9	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 4
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_4	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	32	;HEIGHT
		dc.w	+8	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 5
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_1	
		dc.w	YFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+11	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 6
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_5
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+8	;;Y OFFSET
		;FLIEGEN LOOPING RECHTS 7
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_3	
		dc.w	YFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	33	;HEIGHT
		dc.w	+7	;Y OFFSET
		;FLIEGEN LOOPING RECHTS 8
		dc.b	14+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	LOOPINGER_4	
		dc.w	XYFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	32	;HEIGHT
		dc.w	+10	;Y OFFSET
		;FLIEGEN DREHEN OBEN 1 *-60-62
		dc.b	12+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	FLUGDREHER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	38	;HEIGHT
		dc.w	-1	;Y OFFSET
		;FLIEGEN DREHEN OBEN 2
		dc.b	15	;TAS_Koll_Y_Up
		dc.b	12	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	FLUGDREHER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	39	;HEIGHT
		dc.w	-5	;Y OFFSET
		;FLIEGEN DREHEN OBEN 3
		dc.b	12+10	;TAS_Koll_Y_Up
		dc.b	8	;TAS_Koll_Y_Down
		dc.b	11	;TAS_Koll_X_Left
		dc.b	10	;TAS_Koll_X_Right
		dc.w	FLUGDREHER_1	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	38	;HEIGHT
		dc.w	-1	;Y OFFSET
		;EMPTY ;EMPTY ;EMPTY ;EMPTY *------63
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	16	;TAS_Koll_Y_Down
		dc.b	10	;TAS_Koll_X_Left
		dc.b	12	;TAS_Koll_X_Right
		dc.w	EMPTYER	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	2	;HEIGHT
		dc.w	0	;Y OFFSET
*------------------------------------------------------------------------------
		*--Wackl_Left1 *------64
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	WACKLER_1	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	50	;HEIGHT
		dc.w	-5	;Y OFFSET
		*--Wackl_Left2 *------65
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	WACKLER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		*--Wackl_Left3 *------66
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	WACKLER_1	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	50	;HEIGHT
		dc.w	-5	;Y OFFSET
		*--Wackl_Left4 *------67
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	WACKLER_2	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		*--DEAD_LeftRight *------68
		dc.b	12	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	06	;TAS_Koll_X_Left
		dc.b	20	;TAS_Koll_X_Right
		dc.w	DEADLER	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	55	;HEIGHT
		dc.w	-10	;Y OFFSET
*------------------------------------------------------------------------------
		;Stand Left ;69-STEHEN LINKS
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	ATMER_2	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Stand Right ;70-STEHEN Rechts
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	ATMER_2	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Stand Left ;71-STEHEN LINKS
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	ATMER_3	
		dc.w	NOFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
		;Stand Right ;72-STEHEN Rechts
		dc.b	14	;TAS_Koll_Y_Up
		dc.b	20	;TAS_Koll_Y_Down
		dc.b	08	;TAS_Koll_X_Left
		dc.b	16	;TAS_Koll_X_Right
		dc.w	ATMER_3	
		dc.w	XFLIP
		dc.b	6,26	; Offset von Links Oben auf Koll X
		dc.b	14,17	; Offset von Links Oben auf Foot
		dc.w	44	; Offset von Links Oben auf Foot
		dc.w	51	;HEIGHT
		dc.w	-6	;Y OFFSET
ANZ_ANIMS		=	73

*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
WALKER_1		=Nutz_Obj0-Nutz_Obj0
WALKER_2		=Nutz_Obj1-Nutz_Obj0
WALKER_3		=Nutz_Obj2-Nutz_Obj0
WALKER_4		=Nutz_Obj3-Nutz_Obj0
WALKER_5		=Nutz_Obj4-Nutz_Obj0
WALKER_6		=Nutz_Obj5-Nutz_Obj0
WALKER_7		=Nutz_Obj6-Nutz_Obj0
WALKER_8		=Nutz_Obj7-Nutz_Obj0

JUMPER_1		=Nutz_Obj8-Nutz_Obj0
JUMPER_2		=Nutz_Obj9-Nutz_Obj0
JUMPER_3		=Nutz_Obj10-Nutz_Obj0

DUCKER			=Nutz_Obj11-Nutz_Obj0

WACKLER_1		=Nutz_Obj12-Nutz_Obj0
WACKLER_2		=Nutz_Obj13-Nutz_Obj0

DEADLER			=Nutz_Obj14-Nutz_Obj0

BREMSER			=Nutz_Obj15-Nutz_Obj0

DREHER_4		=Nutz_Obj16-Nutz_Obj0
DREHER_3		=Nutz_Obj17-Nutz_Obj0
DREHER_2		=Nutz_Obj18-Nutz_Obj0
DREHER_1		=Nutz_Obj28-Nutz_Obj0

ATMER_1		=Nutz_Obj19-Nutz_Obj0
ATMER_2		=Nutz_Obj20-Nutz_Obj0
ATMER_3		=Nutz_Obj21-Nutz_Obj0

FLUGDREHER_1	=Nutz_Obj22-Nutz_Obj0
FLUGDREHER_2	=Nutz_Obj23-Nutz_Obj0

LOOPINGER_1	=Nutz_Obj24-Nutz_Obj0
LOOPINGER_2	=Nutz_Obj25-Nutz_Obj0
LOOPINGER_3	=Nutz_Obj26-Nutz_Obj0
LOOPINGER_4	=Nutz_Obj27-Nutz_Obj0
LOOPINGER_5	=Nutz_Obj29-Nutz_Obj0	;YFlip LOOPINGER 2

EMPTYER		=Nutz_Obj0-Nutz_Obj0



EMPTY_NR		=	63	;***!!! ???

*------------------------------------------------------------------------------
*----------	TEMET_Anim_Tables
*------------------------------------------------------------------------------
		rsreset
TAT_JoyStick_UP		rs.l	1	;Verzweigung bei Joy UP
TAT_JoyStick_DOWN	rs.l	1	;Verzweigung bei Joy DOWN
TAT_JoyStick_LEFT	rs.l	1	;Verzweigung bei Joy LEFT
TAT_JoyStick_RIGHT	rs.l	1	;Verzweigung bei Joy RIGHT
TAT_HEADER_LENGTH	rs.w	0
		rsreset
TAT_Anim		rs.w	1
TAT_Next_AnimTable	rs.l	1
TAT_ENTRY_LENGTH	rs.w	0

TEMET_ANIM_END	=	-1
*-------------------------------------------------------------------------------------
Dead_LR_H		dc.l	-1,-1,-1,-1
Dead_LR		dc.w	68
		dc.w	TEMET_ANIM_END
		dc.l	Dead_LR
*-------------------------------------------------------------------------------------
Wackl_Left_H	dc.l	-1,-1,-1,-1
Wackl_Left	dc.w	64,65
		dc.w	TEMET_ANIM_END
		dc.l	Wackl_Left
Wackl_Right_H	dc.l	-1,-1,-1,-1
Wackl_Right	dc.w	66,67
		dc.w	TEMET_ANIM_END
		dc.l	Wackl_Right
TAW_Left_H	dc.l	-1,-1,-1,-1
TAW_Left	dc.w	3,4,5,6,7,0,1,2
		dc.w	TEMET_ANIM_END
		dc.l	TAW_Left
TAW_Right_H	dc.l	-1,-1,-1,-1
TAW_Right	dc.w	11,12,13,14,15,8,9,10
		dc.w	TEMET_ANIM_END
		dc.l	TAW_Right

TAJ1_Left_H	dc.l	-1,-1,-1,-1
TAJ1_Left	dc.w	16
		dc.w	TEMET_ANIM_END
		dc.l	TAJ1_Left
TAJ2_Left_H	dc.l	-1,-1,-1,-1
TAJ2_Left	dc.w	17
		dc.w	TEMET_ANIM_END
		dc.l	TAJ2_Left
TAJ3_Left_H	dc.l	-1,-1,-1,-1
TAJ3_Left	dc.w	18
		dc.w	TEMET_ANIM_END
		dc.l	TAJ3_Left

TAJ1_Right_H	dc.l	-1,-1,-1,-1
TAJ1_Right	dc.w	20
		dc.w	TEMET_ANIM_END
		dc.l	TAJ1_Right
TAJ2_Right_H	dc.l	-1,-1,-1,-1
TAJ2_Right	dc.w	21
		dc.w	TEMET_ANIM_END
		dc.l	TAJ2_Right
TAJ3_Right_H	dc.l	-1,-1,-1,-1
TAJ3_Right	dc.w	22
		dc.w	TEMET_ANIM_END
		dc.l	TAJ3_Right

TAB_Left_H	dc.l	-1,-1,-1,-1
TAB_Left	dc.w	24
		dc.w	TEMET_ANIM_END
		dc.l	TAB_Left
TAB_Right_H	dc.l	-1,-1,-1,-1
TAB_Right	dc.w	25
		dc.w	TEMET_ANIM_END
		dc.l	TAB_Right
TAS_Left_H	dc.l	-1,-1,-1,-1
TAS_Left		dc.w	69,69,69,69,69,69,69,71,71,26,26,26,26,71
		dc.w	TEMET_ANIM_END
		dc.l	TAS_Left
TAS_Right_H	dc.l	-1,-1,-1,-1
TAS_Right	dc.w	70,70,70,70,70,70,70,72,72,27,27,27,27,72
		dc.w	TEMET_ANIM_END
		dc.l	TAS_Right
TAD_LeftL_H	dc.l	-1,-1,-1,-1
TAD_LeftL	dc.w	28,29,30,31,32,33,34,35
		dc.w	TEMET_ANIM_END
		dc.l	TAD_LeftL
TAD_LeftR_H	dc.l	-1,-1,-1,-1
TAD_LeftR	dc.w	35,34,33,32,31,30,29,28
		dc.w	TEMET_ANIM_END
		dc.l	TAD_LeftR
TAD_RightL_H	dc.l	-1,-1,-1,-1
TAD_RightL	dc.w	36,37,38,39,40,41,42,43
		dc.w	TEMET_ANIM_END
		dc.l	TAD_RightL
TAD_RightR_H	dc.l	-1,-1,-1,-1
TAD_RightR	dc.w	43,42,41,40,39,38,37,36
		dc.w	TEMET_ANIM_END
		dc.l	TAD_RightR
TADu_Left_H	dc.l	-1,-1,-1,-1
TADu_Left	dc.w	19
		dc.w	TEMET_ANIM_END
		dc.l	TADu_Left
TADu_Right_H	dc.l	-1,-1,-1,-1
TADu_Right	dc.w	23
		dc.w	TEMET_ANIM_END
		dc.l	TADu_Right
		;--Fliegen AnimTabs
TAFl_Left_H	dc.l	-1,-1,-1,-1
TAFl_Left_1	dc.w	44,TEMET_ANIM_END
		dc.l	TAFl_Left_1
TAFl_Left_2	dc.w	45,TEMET_ANIM_END
		dc.l	TAFl_Left_2
TAFl_Left_3	dc.w	46,TEMET_ANIM_END
		dc.l	TAFl_Left_3
TAFl_Left_4	dc.w	47,TEMET_ANIM_END
		dc.l	TAFl_Left_4
TAFl_Left_5	dc.w	48,TEMET_ANIM_END
		dc.l	TAFl_Left_5
TAFl_Left_6	dc.w	49,TEMET_ANIM_END
		dc.l	TAFl_Left_6
TAFl_Left_7	dc.w	50,TEMET_ANIM_END
		dc.l	TAFl_Left_7
TAFl_Left_8	dc.w	51,TEMET_ANIM_END
		dc.l	TAFl_Left_8
TAFl_Right_H	dc.l	-1,-1,-1,-1
TAFl_Right_1	dc.w	52,TEMET_ANIM_END
		dc.l	TAFl_Right_1
TAFl_Right_2	dc.w	53,TEMET_ANIM_END
		dc.l	TAFl_Right_2
TAFl_Right_3	dc.w	54,TEMET_ANIM_END
		dc.l	TAFl_Right_3
TAFl_Right_4	dc.w	55,TEMET_ANIM_END
		dc.l	TAFl_Right_4
TAFl_Right_5	dc.w	56,TEMET_ANIM_END
		dc.l	TAFl_Right_5
TAFl_Right_6	dc.w	57,TEMET_ANIM_END
		dc.l	TAFl_Right_6
TAFl_Right_7	dc.w	58,TEMET_ANIM_END
		dc.l	TAFl_Right_7
TAFl_Right_8	dc.w	59,TEMET_ANIM_END
		dc.l	TAFl_Right_8
TAFl_Left_Right_H
		dc.l	-1,-1,-1,-1
TAFl_Left_Right_1
		dc.w	60,TEMET_ANIM_END
		dc.l	TAFl_Left_Right_1
TAFl_Left_Right_2
		dc.w	61,TEMET_ANIM_END
		dc.l	TAFl_Left_Right_2
TAFl_Left_Right_3
		dc.w	62,TEMET_ANIM_END
		dc.l	TAFl_Left_Right_3
*----------------------------------------------------------------------------------
*---------	Fly_Anim_Initialisieren
*----------------------------------------------------------------------------------
Init_Fly_Anim	lea	INIT_Fly_Anim_Table,a0
		move	#1,TEMET_Anim_Delay(a2)
		tst	TEMET_Fly_Dir(a2)
		bmi	.Change_Dir_On
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Right_Looping

.Left_Looping	*---*>Left_Looping_Anim
		*--Full Wing ?
		cmp.b	#FULL_WING,WingStatus(a6)
		beq.s	.OkLL
		*--Low Wing ?
		cmp.b	#LOW_WING,WingStatus(a6)
		bne.s	.TMWL1
		clr.w	TEMET_Fly_Dir(a2)
		clr.w	TEMET_Old_Fly_Dir(a2)
		bra.s	.OkLL
.TMWL1		*--Mid Wing ?
		cmp.b	#3,TEMET_Fly_Dir(a2)
		bne.s	.TMWL2
		move.b	#2,TEMET_Fly_Dir(a2)
		bra.s	.OkLL
.TMWL2		cmp.b	#6,TEMET_Fly_Dir(a2)
		bne.s	.OkLL
		move.b	#7,TEMET_Fly_Dir(a2)

.OkLL		move.l	#TAFl_Left_H,TEMET_Anim_Tab(a2)
		moveq	#0,d0
		move.b	TEMET_Fly_Dir(a2),d0
		lsl	#2,d0
		add	d0,a0
		move.l	(a0),TEMET_Next_Anim(a2)
		move.l	(a0),TEMET_Akt_Anim_Pnt(a2)
		move	d0,TEMET_Fly_Offs(a2)
		rts
.Right_Looping	*---*>Right_Looping_Anim
		*--Full Wing ?
		cmp.b	#FULL_WING,WingStatus(a6)
		beq.s	.OkRL
		*--Low Wing ?
		cmp.b	#LOW_WING,WingStatus(a6)
		bne.s	.TMWR1
		clr.w	TEMET_Fly_Dir(a2)
		clr.w	TEMET_Old_Fly_Dir(a2)
		bra.s	.OkRL
.TMWR1		*--Mid Wing ?
		cmp.b	#3,TEMET_Fly_Dir+1(a2)
		bne.s	.TMWR2
		move.b	#2,TEMET_Fly_Dir+1(a2)
		bra.s	.OkRL
.TMWR2		cmp.b	#6,TEMET_Fly_Dir+1(a2)
		bne.s	.OkRL
		move.b	#7,TEMET_Fly_Dir+1(a2)
.OkRL		move.l	#TAFl_Right_H,TEMET_Anim_Tab(a2)
		moveq	#8,d0
		add.b	TEMET_Fly_Dir+1(a2),d0
		lsl	#2,d0
		add	d0,a0
		move.l	(a0),TEMET_Next_Anim(a2)
		move.l	(a0),TEMET_Akt_Anim_Pnt(a2)
		move	d0,TEMET_Fly_Offs(a2)
		rts
.Change_Dir_On	;--Change_Dir_Anim
		cmp.b	#FULL_WING,WingStatus(a6)
		blo.s	.NoInitChangeD
		move.l	#TAFl_Left_Right_H,TEMET_Anim_Tab(a2)
		move	#16,d0
		move	TEMET_Fly_Dir(a2),d1
		neg	d1
		subq	#1,d1
		add	d1,d0
		lsl	#2,d0
		add	d0,a0		
		move.l	(a0),TEMET_Next_Anim(a2)
		move.l	(a0),TEMET_Akt_Anim_Pnt(a2)
		move	d0,TEMET_Fly_Offs(a2)
		rts
.NoInitChangeD	*--*>NoChangeDir
		clr.w	TEMET_Fly_Dir(a2)
		bra	Init_Fly_Anim
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
INIT_Fly_Anim_Table	dc.l	TAFl_Left_1,TAFl_Left_2,TAFl_Left_3,TAFl_Left_4
		dc.l	TAFl_Left_5,TAFl_Left_6,TAFl_Left_7,TAFl_Left_8
		dc.l	TAFl_Right_1,TAFl_Right_2,TAFl_Right_3,TAFl_Right_4
		dc.l	TAFl_Right_5,TAFl_Right_6,TAFl_Right_7,TAFl_Right_8
		dc.l	TAFl_Left_Right_1,TAFl_Left_Right_2,TAFl_Left_Right_3
*------------------------------------------------------------------------------
LEFT		=	-1
RIGHT		=	1
*------------------------------------------------------------------------------
Init_Drehen	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Test_Right
.Test_Left	tst	TEMET_Dir_X(a2)
		bpl.s	Init_TAD_LeftR
		bra.s	Init_TAD_LeftL
.Test_Right	tst	TEMET_Dir_X(a2)
		bpl	Init_TAD_RightR
		bra.s	Init_TAD_RightL
.Back		rts
Init_TAD_LeftL	cmp.l	#TAD_LeftL_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAD_LeftL_H,TEMET_Anim_Tab(a2)
		move.l	#TAD_LeftL,TEMET_Next_Anim(a2)
		move.l	#TAD_LeftL,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_TAD_RightL	cmp.l	#TAD_RightL_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAD_RightL_H,TEMET_Anim_Tab(a2)
		move.l	#TAD_RightL,TEMET_Next_Anim(a2)
		move.l	#TAD_RightL,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts

Init_TAD_LeftR	cmp.l	#TAD_LeftR_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAD_LeftR_H,TEMET_Anim_Tab(a2)
		move.l	#TAD_LeftR,TEMET_Next_Anim(a2)
		move.l	#TAD_LeftR,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_TAD_RightR	cmp.l	#TAD_RightR_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAD_RightR_H,TEMET_Anim_Tab(a2)
		move.l	#TAD_RightR,TEMET_Next_Anim(a2)
		move.l	#TAD_RightR,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts

*------------------------------------------------------------------------------
Init_TAW_Ausl
		tst.b	Finish(a6)
		bne.s	.NoTest
		;tst.b	Dead_Time(a6)
		;bne.s	.Back
.NoTest		cmp	#DREHEN,TEMET_Status(a2)
		beq.s	.Back
		cmp	#SPRINGEN,TEMET_Status(a2)
		beq	Init_Jump
		cmp	#SPRUNG,TEMET_Status(a2)
		beq	Init_Jump

.NoIJF		cmp.l	#TAW_Left_H,TEMET_Anim_Tab(a2)
		beq.s	.Ausl_Rout
		cmp.l	#TAW_Right_H,TEMET_Anim_Tab(a2)
		bne.s	.Init_Dir
.Ausl_Rout	;Test Speed
		moveq	#0,d0
		move.b	TEMET_Speed_X+Hard(a2),d0
		tst.b	d0
		bpl.s	.okspos
		neg.b	d0
.okspos		cmp.b	#2,d0
		bls.s	.Back
		tst	TEMET_Dir_X(a2)
		bpl.s	Init_TAW_Right
		bra.s	Init_TAW_Left
.Init_Dir		tst	TEMET_Anim_Dir(a2)
		bpl.s	Init_TAW_Right
		bra.s	Init_TAW_Left
.Back		rts

Init_TAW_Left	tst.b	Finish(a6)
		bne.s	.NoTestL
		;tst.b	Dead_Time(a6)
		;bne.s	.Back
.NoTestL		cmp	#DREHEN,TEMET_Status(a2)
		beq.s	.Back
		tst	TEMET_KollisionFlag(a2)
		bne.s	.Walk
		cmp	#SPRINGEN,TEMET_Status(a2)
		beq	Init_TAJ_Left
		cmp	#SPRUNG,TEMET_Status(a2)
		beq	Init_TAJ_Left

.Walk		cmp.l	#TAW_Left_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAW_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAW_Left,TEMET_Next_Anim(a2)
		move.l	#TAW_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#LEFT,TEMET_Anim_Dir(a2)
.Back		rts
Init_TAW_Right	tst.b	Finish(a6)
		bne.s	.NoTestR
		;tst.b	Dead_Time(a6)
		;bne.s	.Back
.NoTestR		cmp	#DREHEN,TEMET_Status(a2)
		beq.s	.Back
		tst	TEMET_KollisionFlag(a2)
		bne.s	.Walk
		cmp	#SPRINGEN,TEMET_Status(a2)
		beq	Init_TAJ_Right
		cmp	#SPRUNG,TEMET_Status(a2)
		beq	Init_TAJ_Right

.Walk		cmp.l	#TAW_Right_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAW_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAW_Right,TEMET_Next_Anim(a2)
		move.l	#TAW_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#RIGHT,TEMET_Anim_Dir(a2)
.Back		rts

*------------------------------------------------------------------------------
Init_Jump	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl	Init_TAJ_Right
		bra.s	Init_TAJ_Left
.Back		rts
*------------------------------------------------------------------------------
Force_Init_Jump	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl	FInit_TAJ_Right
		bra.s	FInit_TAJ_Left
.Back		rts

FInit_TAJ_Left	*--*>Test welche Flugphase
		move.l	#TAJ1_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ1_Left,TEMET_Next_Anim(a2)
		move.l	#TAJ1_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#LEFT,TEMET_Anim_Dir(a2)
		move	#SPRUNG,TEMET_Status(a2)
		rts
Init_TAJ_Left	*--*>Test welche Flugphase
		cmp.l	#TAJ1_Left_H,TEMET_Anim_Tab(a2)
		beq	.Test_Mid
		cmp.l	#TAJ2_Left_H,TEMET_Anim_Tab(a2)
		beq	.Test_End
		cmp.l	#TAJ3_Left_H,TEMET_Anim_Tab(a2)
		beq	.Back
		
		cmp.l	#TAJ3_Right_H,TEMET_Anim_Tab(a2)
		beq	.AufkommenL
		cmp.l	#TAJ2_Right_H,TEMET_Anim_Tab(a2)
		beq	.MitteL
		cmp.l	#TAJ1_Right_H,TEMET_Anim_Tab(a2)
		beq	.AbjumpL
		*--*>Init Abjumpen
		bra.s	.AbjumpL
.Test_Mid		move.b	TEMET_Speed_Y(a2),d0
		bpl.s	.MitteL
		neg.b	d0
		cmp.b	#1,d0
		blo.s	.MitteL
		bra	.Back
.Test_End		move.b	TEMET_Speed_Y(a2),d0
		bmi	.Back
		cmp.b	#2,d0
		bhs	.AufkommenL
		bra	.Back
.AbjumpL		*--*>Abjumpen
		;cmp.l	#TAJ2_Left_H,TEMET_Anim_Tab(a2)
		;beq	.Back
		;cmp.l	#TAJ3_Left_H,TEMET_Anim_Tab(a2)
		;beq	.Back
		move.l	#TAJ1_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ1_Left,TEMET_Next_Anim(a2)
		move.l	#TAJ1_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#LEFT,TEMET_Anim_Dir(a2)
		bra	.Back
.MitteL		*--*>Fliegen
		;cmp.l	#TAJ3_Left_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		;cmp.l	#TAJ2_Left_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		move.l	#TAJ2_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ2_Left,TEMET_Next_Anim(a2)
		move.l	#TAJ2_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#LEFT,TEMET_Anim_Dir(a2)
		bra.s	.Back
.AufkommenL	*--*>Aufkommen
		;cmp.l	#TAJ1_Left_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		;cmp.l	#TAJ3_Left_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		move.l	#TAJ3_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ3_Left,TEMET_Next_Anim(a2)
		move.l	#TAJ3_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#LEFT,TEMET_Anim_Dir(a2)
.Back		rts

FInit_TAJ_Right	*--*>Test welche Flugphase
		move.l	#TAJ1_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ1_Right,TEMET_Next_Anim(a2)
		move.l	#TAJ1_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#RIGHT,TEMET_Anim_Dir(a2)
		move	#SPRUNG,TEMET_Status(a2)
		rts
Init_TAJ_Right	*--*>Test welche Flugphase
		cmp.l	#TAJ1_Right_H,TEMET_Anim_Tab(a2)
		beq	.Test_Mid
		cmp.l	#TAJ2_Right_H,TEMET_Anim_Tab(a2)
		beq	.Test_End
		cmp.l	#TAJ3_Right_H,TEMET_Anim_Tab(a2)
		beq	.Back

		cmp.l	#TAJ3_Left_H,TEMET_Anim_Tab(a2)
		beq	.AufkommenR
		cmp.l	#TAJ2_Left_H,TEMET_Anim_Tab(a2)
		beq	.MitteR
		cmp.l	#TAJ1_Left_H,TEMET_Anim_Tab(a2)
		beq	.AbjumpR
		*--*>Init Abjumpen
		bra.s	.AbjumpR
.Test_Mid		move.b	TEMET_Speed_Y(a2),d0
		bpl.s	.MitteR
		neg.b	d0
		cmp.b	#1,d0
		blo.s	.MitteR
		bra	.Back
.Test_End		move.b	TEMET_Speed_Y(a2),d0
		bmi	.Back
		cmp.b	#02,d0
		bhs	.AufkommenR
		bra	.Back
.AbjumpR		*--*>Abjumpen
		;cmp.l	#TAJ2_Right_H,TEMET_Anim_Tab(a2)
		;beq	.Back
		;cmp.l	#TAJ3_Right_H,TEMET_Anim_Tab(a2)
		;beq	.Back
		move.l	#TAJ1_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ1_Right,TEMET_Next_Anim(a2)
		move.l	#TAJ1_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#RIGHT,TEMET_Anim_Dir(a2)
		bra	.Back
.MitteR		*--*>Fliegen
		;cmp.l	#TAJ3_Right_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		;cmp.l	#TAJ2_Right_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		move.l	#TAJ2_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ2_Right,TEMET_Next_Anim(a2)
		move.l	#TAJ2_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#RIGHT,TEMET_Anim_Dir(a2)
		bra.s	.Back
.AufkommenR	*--*>Aufkommen
		;cmp.l	#TAJ1_Right_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		;cmp.l	#TAJ3_Right_H,TEMET_Anim_Tab(a2)
		;beq.s	.Back
		move.l	#TAJ3_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAJ3_Right,TEMET_Next_Anim(a2)
		move.l	#TAJ3_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		move	#RIGHT,TEMET_Anim_Dir(a2)
.Back		rts
*------------------------------------------------------------------------------
Init_TAB_Left	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		cmp	#DREHEN,TEMET_Status(a2)
		beq.s	.Back
		tst	TEMET_KollisionFlag(a2)
		beq.s	.Back
		cmp.l	#TAB_Left_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Back
		move.l	#TAB_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAB_Left,TEMET_Next_Anim(a2)
		move.l	#TAB_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_TAB_Right	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		cmp	#DREHEN,TEMET_Status(a2)
		beq.s	.Back
		tst	TEMET_KollisionFlag(a2)
		beq.s	.Back
		cmp.l	#TAB_Right_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bmi.s	.Back
		move.l	#TAB_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAB_Right,TEMET_Next_Anim(a2)
		move.l	#TAB_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
*------------------------------------------------------------------------------
Init_Dead		move.l	#Dead_LR_H,TEMET_Anim_Tab(a2)
		move.l	#Dead_LR,TEMET_Next_Anim(a2)
		move.l	#Dead_LR,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
		rts

*------------------------------------------------------------------------------
Init_TAS	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl.s	Init_TAS_Right
		bra.s	Init_TAS_Left
.Back		rts
Init_TAS_Left	cmp.l	#TAS_Left_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAS_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAS_Left,TEMET_Next_Anim(a2)
		move.l	#TAS_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_TAS_Right	cmp.l	#TAS_Right_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TAS_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAS_Right,TEMET_Next_Anim(a2)
		move.l	#TAS_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
*------------------------------------------------------------------------------
Init_Force_TAS	tst	TEMET_Anim_Dir(a2)
		bpl.s	Init_FTAS_Right
Init_FTAS_Left	move.l	#TAS_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TAS_Left,TEMET_Next_Anim(a2)
		move.l	#TAS_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_FTAS_Right	move.l	#TAS_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TAS_Right,TEMET_Next_Anim(a2)
		move.l	#TAS_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
*------------------------------------------------------------------------------
Init_Wackl	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl.s	Init_Wackl_Right
		bra.s	Init_Wackl_Left
.Back		rts
Init_Wackl_Left	cmp.l	#Wackl_Left_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#Wackl_Left_H,TEMET_Anim_Tab(a2)
		move.l	#Wackl_Left,TEMET_Next_Anim(a2)
		move.l	#Wackl_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_Wackl_Right	cmp.l	#Wackl_Right_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#Wackl_Right_H,TEMET_Anim_Tab(a2)
		move.l	#Wackl_Right,TEMET_Next_Anim(a2)
		move.l	#Wackl_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
*------------------------------------------------------------------------------
Init_TADuck	;tst.b	Dead_Time(a6)
		;bne.s	.Back
		tst	TEMET_Anim_Dir(a2)
		bpl.s	Init_TADu_Right
		bra.s	Init_TADu_Left
.Back		rts
Init_TADu_Left	cmp.l	#TADu_Left_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TADu_Left_H,TEMET_Anim_Tab(a2)
		move.l	#TADu_Left,TEMET_Next_Anim(a2)
		move.l	#TADu_Left,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
Init_TADu_Right	cmp.l	#TADu_Right_H,TEMET_Anim_Tab(a2)
		beq.s	.Back
		move.l	#TADu_Right_H,TEMET_Anim_Tab(a2)
		move.l	#TADu_Right,TEMET_Next_Anim(a2)
		move.l	#TADu_Right,TEMET_Akt_Anim_Pnt(a2)
		move	#1,TEMET_Anim_Delay(a2)
.Back		rts
*------------------------------------------------------------------------------

*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
Change_TEMET_Koords	;Koordinaten Speichern
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		moveq	#0,d1	;SpeedX
		moveq	#0,d2	;SpeedY
		move.b	TEMET_Speed_X+Hard(a2),d1
		move.b	TEMET_Speed_Y+Hard(a2),d2
		ext.w	d1
		ext.w	d2

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		moveq	#0,d0
		move	TEMET_Speed_X_Rest(a2),d3
		move.b	TEMET_Speed_X+Soft(a2),d0
		add	d0,d3
		cmp	#256,d3
		blo.s	.NoXOverflow
		sub	#256,d3
		addq	#1,d1
.NoXOverflow	move	d3,TEMET_Speed_X_Rest(a2)

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TestY		cmp	#MOVER,TEMET_Status(a2)
		beq.s	.TestEnd
		moveq	#0,d0

		move	TEMET_Speed_Y_Rest(a2),d3
		move.b	TEMET_Speed_Y+Soft(a2),d0
		add	d0,d3
		cmp	#256,d3
		blo.s	.NoYOverflow
		sub	#256,d3
		addq	#1,d2
.NoYOverflow	move	d3,TEMET_Speed_Y_Rest(a2)

.TestEnd		;Change Position
		move	d1,TEMET_Speed_X_Scr(a2)
		move	d2,TEMET_Speed_Y_Scr(a2)
		add	d1,TEMET_X_Position(a2)
		add	d2,TEMET_Y_Position(a2)
		rts
*------------------------------------------------------------------------------
*----------	Test X STACHEL
*------------------------------------------------------------------------------
		***ROUTINE CHECKEN WEGEN NEUEM LEVELFORMAT !!!

TEST_X_STACHEL	*--*>Test if Mover (beide Testen)
		cmp	#MOVER,TEMET_Status(a2)
		bne.s	.Normal
		*--*>Mover StachelTest
		jsr	.Left_Stachel
		jsr	.Right_Stachel
		rts
.Normal		*--*>Test auf X Stachel
		tst	TEMET_Speed_X(a2)
		beq	.END
		bpl.s	.Right_Stachel
.Left_Stachel	*--*>Links untersuchen
		move	TEMET_X_Position(a2),d0
		addq	#6,d0
		move	TEMET_Y_Position(a2),d1
		addq	#6,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>test auf Left Dead
		cmp.b	#2,Block_Dead(a1)
		bne.s	.Block_DownL
		bra	.DEAD_LEFT
.Block_DownL	*--X-Koll_L+16
		move	TEMET_X_Position(a2),d0
		addq	#6,d0
		move	TEMET_Y_Position(a2),d1
		add	#6+16,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>test auf Left Dead
		cmp.b	#2,Block_Dead(a1)
		bne	.END
		bra	.DEAD_LEFT	
.Right_Stachel	*--*>Rechts untersuchen
		move	TEMET_X_Position(a2),d0
		add	#32-8,d0
		move	TEMET_Y_Position(a2),d1
		addq	#8,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>test auf Left Dead
		cmp.b	#3,Block_Dead(a1)
		bne.s	.Block_DownR
		bra	.DEAD_RIGHT
.Block_DownR	*--X-Koll_L+16
		move	TEMET_X_Position(a2),d0
		add	#32-8,d0
		move	TEMET_Y_Position(a2),d1
		add	#8+16,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>test auf Left Dead
		cmp.b	#3,Block_Dead(a1)
		bne.s	.END
		bra	.DEAD_RIGHT

.DEAD_RIGHT	*--*>HIT RIGHT		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash1
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		sub	d0,TEMET_X_Position(a2)
		subq	#3,TEMET_X_Position(a2)
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		rts
.noFlash1		clr.w	TEMET_Speed_X(a2)
		move.b	#-3,TEMET_Speed_X(a2)
		moveq	#50,d5
		jsr	Sub_TEMET_Hitpoint_St
		bra.s	.Out_Fly
.DEAD_LEFT	*--*>HIT LEFT		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash2
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		sub	d0,TEMET_X_Position(a2)
		addq	#3,TEMET_X_Position(a2)
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		rts
.noFlash2		clr.w	TEMET_Speed_X(a2)
		move.b	#3,TEMET_Speed_X(a2)
		moveq	#50,d5
		jsr	Sub_TEMET_Hitpoint_St
.Out_Fly		*--*>Out_Possible fly
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		move	#FALLEN,TEMET_Status(a2)
		rts		
.END		*--*>Ende
		rts
*------------------------------------------------------------------------------
*----------	Test Kollision and Change Speeds
*------------------------------------------------------------------------------
XKOLLADDD	=2
TEST_X_KOLLISION_D	*--Test Feet first
		jsr	TEST_X_KOLLISION_F

		*--Test Body and Head
		cmp	#MOVER,TEMET_Status(a2)
		beq	.Testboth
		tst	TEMET_Speed_X(a2)
		beq.s	.Testboth
		bpl	.X_RIGHT_KOLLI1	;TEMET Luft nach Rechts
		bra.s	.X_LEFT_KOLLI1
.Testboth		*--*>	Testen
		jsr	.X_RIGHT_KOLLI1	
		jsr	.X_LEFT_KOLLI1
		rts
.X_LEFT_KOLLI1	*--TEST LEFT X KOLLISION
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		moveq	#0,d2
		move.b	#XKOLLADDD,d2
		;move.b	TEMET_X_Koll_Offset(a2),d2
		add	d2,d0
		addq	#6,d1
		jsr	Get_Block_All
		*--Test auf X Kolli
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0	***!!!
		beq.s	.NO_X_LEFT_KOLLI1	;Wenn Bit nicht gesetzt
		;Get Block Entry
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--Test auf X Kolli
		cmp.b	Block_XR(a1),d2
		bhi.s	.NO_X_LEFT_KOLLI1
		tst.b	Block_Y0(a1,d2)
		bmi.s	.Make_X_K1
		cmp.b	Block_Y0(a1,d2),d3
		bls.s	.NO_X_LEFT_KOLLI1
.Make_X_K1	*--Make X Koord		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash1
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		bra.s	.FlashIn1
.noFlash1		*--*>NOFLASH
		clr.w	TEMET_Speed_X(a2)
.FlashIn1		moveq	#0,d0
		move.b	Block_XR(a1),d0
		and	#$fff0,TEMET_X_Position(a2)
		add	#16-XKOLLADDD,TEMET_X_Position(a2)

		;sub	d2,TEMET_X_Position(a2)
		;add	d0,TEMET_X_Position(a2)
		bra	.END_X_KOLLI
.NO_X_LEFT_KOLLI1	*--X-Koll_L+16
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		moveq	#0,d2
		move.b	TEMET_X_Koll_Offset(a2),d2
		add	d2,d0
		add	#6+16,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq	.END_X_KOLLI	;Wenn Bit nicht gesetzt
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	Block_XR(a1),d2
		bhi	.END_X_KOLLI
		*--Make X Koord		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash2
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		bra.s	.FlashIn2
.noFlash2		*--*>NOFLASH
		clr.w	TEMET_Speed_X(a2)
.FlashIn2		moveq	#0,d0
		move.b	Block_XR(a1),d0

		sub	d2,TEMET_X_Position(a2)
		add	d0,TEMET_X_Position(a2)
		bra	.END_X_KOLLI
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.X_RIGHT_KOLLI1	;TEST RIGHT X KOLLISION
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		moveq	#0,d2
		move.b	#32-XKOLLADDD,d2
		;move.b	TEMET_X_Koll_Offset+1(a2),d2
		add	d2,d0
		addq	#6,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NO_X_RIGHT_KOLLI1	;Wenn Bit nicht gesetzt
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--Test auf X Kolli
		cmp.b	Block_XL(a1),d2
		blo.s	.NO_X_RIGHT_KOLLI1
		tst.b	Block_Y0(a1,d2)
		bmi.s	.Make_X_K2
		cmp.b	Block_Y0(a1,d2),d3
		bls.s	.NO_X_RIGHT_KOLLI1
.Make_X_K2	*--Make X Koord	;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash3
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		bra.s	.FlashIn3
.noFlash3		*--*>NOFLASH
		clr.w	TEMET_Speed_X(a2)
.FlashIn3		moveq	#0,d0
		move.b	Block_XL(a1),d0
		and	#$fff0,TEMET_X_Position(a2)
		add	#XKOLLADDD,TEMET_X_Position(a2)
		;sub	d2,TEMET_X_Position(a2)
		;add	d0,TEMET_X_Position(a2)
		bra.s	.END_X_KOLLI
.NO_X_RIGHT_KOLLI1	*--X_KOLL_R+16
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		moveq	#0,d2
		move.b	TEMET_X_Koll_Offset+1(a2),d2
		add	d2,d0
		add	#6+16,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.END_X_KOLLI
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	Block_XL(a1),d2
		blo.s	.END_X_KOLLI
		*--Make X Koord		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash4
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		bra.s	.FlashIn4
.noFlash4		*--*>NOFLASH
		clr.w	TEMET_Speed_X(a2)
.FlashIn4		moveq	#0,d0
		move.b	Block_XL(a1),d0
		sub	d2,TEMET_X_Position(a2)
		add	d0,TEMET_X_Position(a2)
.END_X_KOLLI	rts
*-------------------------------------------------------------------------------------
XKOLLADDFU	=5
*-----------------
TEST_X_KOLLISION_F
		tst	TEMET_Dir_X(a2)
		bpl	.X_RIGHT_KOLLI1
		;bra	.X_LEFT_KOLLI1

;.AllKolli	jsr	.X_LEFT_KOLLI1
;		jsr	.X_RIGHT_KOLLI1
;		rts

.X_LEFT_KOLLI1	*--TEST LEFT X KOLLISION
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		moveq	#0,d2
		move.b	#XKOLLADDFU,d2
		move.b	TEMET_X_Koll_Offset(a2),d2
		add	d2,d0
		add	TEMET_Y_Foot_Offset(a2),d1
		sub	#11,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq	.END_X_KOLLI
		*--Get Block Entry
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--Test auf X Kolli
		cmp.b	Block_XR(a1),d2
		bhi	.END_X_KOLLI
		*--Make X Koord		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash5
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		bra.s	.FlashIn5
.noFlash5		*--*>NOFLASH
		clr.w	TEMET_Speed_X(a2)
.FlashIn5		moveq	#0,d0
		move.b	Block_XR(a1),d0
		and	#$fff0,TEMET_X_Position(a2)
		add	#16-XKOLLADDFU,TEMET_X_Position(a2)
		subq	#1,TEMET_X_Position(a2)
		bra	.END_X_KOLLI
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.X_RIGHT_KOLLI1	*--TEST RIGHT X KOLLISION
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1

		moveq	#0,d2
		move.b	#32-XKOLLADDFU,d2
		add	d2,d0

		add	TEMET_Y_Foot_Offset(a2),d1
		sub	#11,d1		;Nicht fe prfen
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.END_X_KOLLI
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--Test auf X Kolli
		cmp.b	Block_XL(a1),d2
		blo.s	.END_X_KOLLI
		*--Make X Koord		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash6
		*--*>Flash
		move.b	TEMET_Speed_X(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_X(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		bra.s	.FlashIn6
.noFlash6		*--*>NOFLASH
		clr.w	TEMET_Speed_X(a2)
.FlashIn6	moveq	#0,d0
		move.b	Block_XL(a1),d0
		and	#$fff0,TEMET_X_Position(a2)
		add	#XKOLLADDFU,TEMET_X_Position(a2)
		bra	.END_X_KOLLI

.END_X_KOLLI	rts

*------------------------------------------------------------------------------
*----------	Test HEAD-KOLLISION and Change Speeds
*------------------------------------------------------------------------------
TEST_HEAD_KOLLISION	*--*>TEST HEAD KOLLISION
.Left_Head_Koll	*--*>TEST LEFT HEAD KOLLISION
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		tst	TEMET_Dir_X(a2)
		bpl.s	.XRV1
		add	#8,d0
		bra.s	.YADD1
.XRV1		add	#16,d0
.YADD1		;addq	#2,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq	.Right_Head_Koll	;Wenn Bit nicht gesetzt
		*--Get Block Entry
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Jump ENDE !
		move	TEMET_MaxJumpHight(a2),TEMET_JumpHight(a2)
		move	#15,STOP_Bumping(a6)
		move	#FRAME_NETT+1,TEMET_Fallen_Cnt(a6)

		*--*>Test auf Stachel
		cmp.b	#1,Block_Dead(a1)
		bne.s	.NoDeadBlockL
		*--*>In Dead Block		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash1
		*--*>Flash
		move.b	TEMET_Speed_Y(a2),d0
		ext.w	d0
		add	#16,TEMET_Y_Position(a2)
		sub	d3,TEMET_Y_Position(a2)
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_Y(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		rts
.noFlash1		clr.w	TEMET_Speed_Y(a2)
		move.b	#3,TEMET_Speed_Y(a2)
		moveq	#50,d5
		jsr	Sub_TEMET_Hitpoint_St
		bra	.End_Head_Test

.NoDeadBlockL	***!!! MOVER
		cmp	#MOVER,TEMET_Status(a2)
		beq	.Right_Head_Koll
		*--test		;FLASH HIER
		cmp.b	#-2,Block_Y0(a1,d2)
		beq.s	.Make_Schraeg_L
		cmp.b	#-1,Block_Y0(a1,d2)
		beq.s	.Make_Gerade_L
		cmp.b	Block_Y0(a1,d2),d3
		blo	.Right_Head_Koll
		moveq	#0,d0
		move.b	Block_Y0(a1,d2),d0
		sub	d3,TEMET_Y_Position(a2)
		add	#16,TEMET_Y_Position(a2)
.L_Head_Koll	cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.Make_Schraeg_L
.Make_Gerade_L	*--Make Gerade
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash2
		*--*>Flash
		tst	TEMET_Speed_Y(a2)
		bpl.s	.EF2
		move.b	TEMET_Speed_Y(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_Y(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
.EF2		rts
.noFlash2		tst	TEMET_Speed_Y(a2)
		bpl.s	.NoClrL
		clr.w	TEMET_Speed_Y(a2)
.NoClrL		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		bra	.End_Head_Test
.Make_Schraeg_L	*--Schraege Werte
		tst	TEMET_Speed_Y(a2)
		bpl.s	.OkYpos_L
		addq	#4,TEMET_Y_Position(a2)
		move	TEMET_Speed_X(a2),d0
		asr	#1,d0
		move	d0,d1
		tst	d1
		bpl.s	.okY_Speed_L
		neg	d1
.okY_Speed_L	move	d1,TEMET_Speed_Y(a2)
		move	d0,TEMET_Speed_X(a2)
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		bra	.End_Head_Test
.OkYpos_L		add	#$0040,TEMET_Speed_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		bra	.End_Head_Test
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Right_Head_Koll	*--*>TEST RIGHT HEAD KOLLISION
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		tst	TEMET_Dir_X(a2)
		bpl.s	.XRV2
		add	#16,d0
		bra.s	.YADD2
.XRV2		add	#24,d0
.YADD2		;addq	#2,d1
		jsr	Get_Block_All
		swap	d0
		*--Test if Y Kolli ids allowed
		btst	#SCR_KOLLISION_BIT,d0
		beq	.End_Head_Test	;Wenn Bit nicht gesetzt
		*--Get Block Entry
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Jump ENDE !
		move	TEMET_MaxJumpHight(a2),TEMET_JumpHight(a2)
		move	#15,STOP_Bumping(a6)
		move	#FRAME_NETT+1,TEMET_Fallen_Cnt(a6)

		*--*>Test auf Stachel
		cmp.b	#1,Block_Dead(a1)
		bne.s	.NoDeadBlockR
		*--*>In Dead Block		;FLASH HIER
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash3
		*--*>Flash
		move.b	TEMET_Speed_Y(a2),d0
		ext.w	d0
		add	#16,TEMET_Y_Position(a2)
		sub	d3,TEMET_Y_Position(a2)
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_Y(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
		rts
.noFlash3		clr.w	TEMET_Speed_Y(a2)
		move.b	#3,TEMET_Speed_Y(a2)
		moveq	#50,d5
		jsr	Sub_TEMET_Hitpoint_St
		bra	.End_Head_Test

.NoDeadBlockR	***!!!	MOVER
		cmp	#MOVER,TEMET_Status(a2)
		beq	.End_Head_Test
		*--test
		cmp.b	#-2,Block_Y0(a1,d2)
		beq.s	.Make_Schraeg_R
		cmp.b	#-1,Block_Y0(a1,d2)
		beq.s	.Make_Gerade_R
		cmp.b	Block_Y0(a1,d2),d3
		blo	.End_Head_Test
		*--Make Y Koord
		moveq	#0,d0
		move.b	Block_Y0(a1,d2),d0
		sub	d3,TEMET_Y_Position(a2)
		add	#16,TEMET_Y_Position(a2)
.R_Head_Koll	cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.Make_Schraeg_R
.Make_Gerade_R	*--Make Gerade
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash4
		*--*>Flash
		tst	TEMET_Speed_Y(a2)
		bpl.s	.EF4
		move.b	TEMET_Speed_Y(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_Y(a2)
		IFEQ	SOUNDFX
		moveq	#26,d0
		jsr	TFMX+16
		ENDC
.EF4		rts
.noFlash4		tst	TEMET_Speed_Y(a2)
		bpl.s	.NoClrR
		clr.w	TEMET_Speed_Y(a2)
.NoClrR		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		rts
.Make_Schraeg_R	*--Schraege Werte
		tst	TEMET_Speed_Y(a2)
		bpl.s	.OkYpos_R
		addq	#4,TEMET_Y_Position(a2)
		move	TEMET_Speed_X(a2),d0
		asr	#1,d0
		move	d0,d1
		tst	d1
		bpl.s	.okY_Speed_R
		neg	d1
.okY_Speed_R	move	d1,TEMET_Speed_Y(a2)
		move	d0,TEMET_Speed_X(a2)
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		bra	.End_Head_Test
.OkYpos_R		add	#$0040,TEMET_Speed_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		;bra	.End_Head_Test
.End_Head_Test	rts

*------------------------------------------------------------------------------
*------------------------------------------------------------------------------
*-----------	TEMET_SPEED_SUPERVISOR
*------------------------------------------------------------------------------
*-----------	Values in
*-----------
*-----------	a1 Adr auf Block Entry
*-----------
*-----------	d0 TEMET X Speed
*-----------	d1 TEMET Y Speed
*-----------	d2 Soft X Pos (Offset to Proz)
*-----------
*------------------------------------------------------------------------------
*-----------	Values out
*-----------
*-----------	d4 TEMET X Act Speed
*-----------	d5 TEMET Y Act Speed
*-----------
*------------------------------------------------------------------------------

Make_New_Speed	;Calculate Proz Offset and Clear Dx
		lsr	#2,d2
		moveq	#0,d3
		;Test what Speed must be reduced
		moveq	#0,d6
		moveq	#0,d7
		move.b	Block_Dir_X(a1),d6
		ext.w	d6
		move.b	Block_Dir_Y(a1),d7
		ext.w	d7

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		;Flags in AusgangsPosition
		clr.w	TEMET_DirX_Equ_Flag(a2)
		clr.w	TEMET_DirY_Equ_Flag(a2)

		;test if Block Dir X is Zero
		tst	d6
		beq.s	.Dont_Reduce_X
		;Test X
		cmp	TEMET_Dir_X(a2),d6
		beq.s	.Dont_Reduce_X
		move	#1,TEMET_DirX_Equ_Flag(a2)
		;Test ob Speed Reduce allowed
		tst	TEMET_New_Calc_Flag(a2)
		bne.s	.Dont_Reduce_X
		;Reduce X
		move.b	Block_Proz_X_1(a1,d2),d3	;Xn=Xa*X%/100
		muls	d3,d0
		divs	#100,d0

.Dont_Reduce_X	;test if Block Dir Y is Zero
		tst	d7
		beq.s	.Dont_Reduce_Y
		;Test Y
		cmp	TEMET_Dir_Y(a2),d7
		beq.s	.Dont_Reduce_Y
		move	#1,TEMET_DirY_Equ_Flag(a2)
		;Test ob Speed Reduce allowed
		tst	TEMET_New_Calc_Flag(a2)
		bne.s	.Falsch
		;Reduce Y
		move.b	Block_Proz_Y_1(a1,d2),d3	;Yn=Ya*Y%/100
		muls	d3,d1
		divs	#100,d1
		;bra.s	.Dont_Reduce_Y
.Falsch

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Dont_Reduce_Y	;Reduced X,Y in d0,d1 saved in d6,d7
		move	d0,d6
		move	d1,d7

		;Calculate X in X,Y Componenten
		move.b	Block_Proz_X_1(a1,d2),d3	;Xnx=Xn*X%/100
		muls	d3,d6
		divs	#100,d6
		move	d6,d4			;Xnx Value in End
		move	d0,d6
		sub	d4,d6

		;Testen ob Y-Test notwendig
		tst	TEMET_DirX_Equ_Flag(a2)
		beq.s	.Make_Y_Contra
		;Make Y equal
		tst.b	Block_Dir_Y(a1)
		beq	.YisOk
		bmi.s	.YBeNeg
.YBePos		tst	d6
		bpl.s	.YisOk
		bra.s	.NegY
.YBeNeg		tst	d6
		bmi.s	.YisOk
.NegY		neg	d6
		bra.s	.YisOk
.Make_Y_Contra	;Make Y contra
		tst.b	Block_Dir_Y(a1)
		beq	.YisOk
		bmi.s	.YBePos1
.YBeNeg1		tst	d6
		bmi.s	.YisOk
		bra.s	.NegY1
.YBePos1		tst	d6
		bpl.s	.YisOk
.NegY1		neg	d6
		;bra.s	.YisOk

.YisOk		move	d6,d5			;Xny Value in End
		;Calculate Y in X,Y Componenten
		move.b	Block_Proz_Y_1(a1,d2),d3	;Xnx=Xn*X%/100
		muls	d3,d7
		divs	#100,d7
		add	d7,d5			;add Yny Value to End
		move	d1,d6
		sub	d7,d6

		;Testen ob X-Test notwendig
		tst	TEMET_DirY_Equ_Flag(a2)
		beq.s	.Make_X_Contra
		;Make Y equal
		tst.b	Block_Dir_X(a1)
		beq	.XisOk
		bmi.s	.XBeNeg
.XBePos		tst	d6
		bpl.s	.XisOk
		bra.s	.NegX
.XBeNeg		tst	d6
		bmi.s	.XisOk
.NegX		neg	d6
		bra.s	.XisOk
.Make_X_Contra	;Make X contra
		tst.b	Block_Dir_X(a1)
		beq	.XisOk
		bmi.s	.XBePos1
.XBeNeg1		tst	d6
		bmi.s	.XisOk
		bra.s	.NegX1
.XBePos1		tst	d6
		bpl.s	.XisOk
.NegX1		neg	d6
		;bra.s	.XisOk
.XisOk		add	d6,d4			;add Ynx Value to End

* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Back		rts
.Back_Illegal	move	d0,d4
		move	d1,d5
		rts
*------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
*-------------	WALK FALL JUMP TEST-SYSTEM
*-------------------------------------------------------------------------------------
X_TOLLERANZ	=0
TEST_Y_SOLID	addq	#1,TEMET_Up_Timer(a2)
		cmp	#1,TEMET_KollisionFlag(a2)
		beq	.Move_Fast
		;Calculate Foot Offsets
		moveq	#0,d7
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.DP
		move.b	TEMET_X_Foot_Offset(a2),d7
		add	#X_TOLLERANZ,d7
		bra.s	.NDP
.DP		move.b	TEMET_X_Foot_Offset+1(a2),d7
		sub	#X_TOLLERANZ,d7
.NDP
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		;--Calculate LevelAdr
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		add	d7,d0
		add	TEMET_Y_Foot_Offset(a2),d1
		jsr	Get_Block_All
		swap	d0
		move	d0,d1
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
.S_FLAG_ON_TEST1
		;--Test Bit Ground-Down Flag ist gesetzt
		btst	#SCR_SRG_BIT,d1
		beq.s	.UpperBitTest
		move	#1,TEMET_S_Test_Flag(a2)
		bra	.NoOutTest
.UpperBitTest	
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		add	d7,d0
		add	TEMET_Y_Foot_Offset(a2),d1
		sub	#16,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_SRG_BIT,d0
		beq.s	.BitOutTest
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.berSchrge
		move	#1,TEMET_S_Test_Flag(a2)
		bra	.NoOutTest
.berSchrge	;--Testen ob man sich ber Schrge befindet
		cmp.b	Block_Y0(a1,d2),d3
		bhs.s	.BitOutTest
		move	#1,TEMET_S_Test_Flag(a2)
		bra.s	.NoOutTest
             		
.BitOutTest	;--Testen ob S-Flag gelscht werden soll
		cmp.b	#boden,Block_Through(a1)
              	beq.s	.NoOutTest
		cmp.b	#swand,Block_Through(a1)
		beq.s	.NoOutTest
 		clr.w	TEMET_S_Test_Flag(a2)
		*--*>Testen ob TEMET auf Todesblock fllt
		tst	TEMET_Dir_Y(a2)
		beq.s	.NoDeadBlock
		bmi.s	.NoDeadBlock
		cmp.b	#1,Block_Dead(a1)
		bne.s	.NoDeadBlock
		*--*>In Dead Block		;FLASH HIER
		tst	TEMET_Other_Object(a2)
		bne	.NoDeadBlock
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.noFlash1
		*--*>Flash
		subq	#6,TEMET_Y_Position(a2)
		clr.w	TEMET_FLASH_JUMPER(a2)
		move.b	TEMET_Speed_Y(a2),d0
		ext.w	d0
		neg	d0
		asr	#1,d0
		move.b	d0,TEMET_Speed_Y(a2)
		rts
.noFlash1		clr.w	TEMET_Speed_Y(a2)
		move.b	#-6,TEMET_Speed_Y(a2)
		moveq	#50,d5
		jsr	Sub_TEMET_Hitpoint_St
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		move	#FALLEN,TEMET_Status(a2)
.NoDeadBlock	bra	.Ende

.NoOutTest	*--Testen ob Luft in Solid Block
		cmp.b	#-1,Block_Y0(a1,d2)
		beq	.Ende
		;--Testen ob Boden Kollision Mglich
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.TestSFlag
		;--testen ob bereits in -2
 		tst	TEMET_S_Test_Flag(a2)
		beq.s	.TestGERADE
 		cmp.b	#-2,Block_Y0(a1,d2)
		beq.s	.Fast_Move_neg2
.TestGERADE	;--GERADE, deshalb nur von oben
		tst	TEMET_Dir_Y(a2)
		bpl.s	.Test_Y_Up
		tst	TEMET_Speed_Y(a2)
		bpl.s	.Test_Y_Up
 		tst	TEMET_S_Test_Flag(a2)
		bne.s	.Test_Y_Up
		bra	.Ende
.TestSFlag	tst	TEMET_S_Test_Flag(a2)
		beq	.Ende
.TestMoveFast	;--Testen ob -2 in schraege
		cmp.b	#-2,Block_Y0(a1,d2)
		bne.s	.Test_Y_Up
		;ZuFastMove
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fast_Move_neg2	*--*>FASTMOVE Einstieg fr -2 Blcke
		cmp	#2,TEMET_Up_Timer(a2)
		bls.s	.NoUpClr1
		clr.w	TEMET_Up_Timer(a2)
.NoUpClr1		bra.s	.Move_Fast
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_Y_Up	;--Testen TEMET unter Ground
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.NoFlashTest
		*--*>FLASHTEST bei GERADEN
		cmp.b	#luft,Block_Through(a1)
		beq.s	.NoFlashTest
		cmp.b	Block_Y0(a1,d2),d3
		blo.s	.Ende
		cmp	#3,TEMET_Shield_Flag(a2)
		bne.s	.NoFlashTest
		*--*>Flash
		subq	#2,TEMET_Y_Position(a2)
		move.b	TEMET_Speed_Y(a2),d0
		tst.b	d0
		bpl.s	.OkPositiv
		neg.b	d0
.OkPositiv	subq.b	#1,d0
		cmp.b	#$02,d0
		bhs.s	.NormalNeg
		move.b	#$02,d0
.NormalNeg	neg.b	d0
		clr.w	TEMET_Speed_Y(a2)
		move.b	d0,TEMET_Speed_Y(a2)
		move.l	a1,TEMET_Save_a1(a2)
		move	d2,TEMET_Save_X_d2(a2)
		clr.w	TEMET_FLASH_JUMPER(a2)
		rts

.NoFlashTest	cmp.b	Block_Y0(a1,d2),d3
		blo.s	.Ende
		;ZuFastMove
		cmp	#2,TEMET_Up_Timer(a2)
		bls.s	.NoUpClr2
		clr.w	TEMET_Up_Timer(a2)
.NoUpClr2		bra.s	.Move_Fast
.Ende		rts

*------------------------------------------------------------------------------
*------------	Dont move step by step ???
*------------------------------------------------------------------------------
.Move_Fast	;--Calculate Foot VALUES
		moveq	#0,d6
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.RightFoot
		move.b	TEMET_X_Foot_Offset(a2),d6
		add	#X_TOLLERANZ,d6
		bra.s	.NoFoot
.RightFoot	move.b	TEMET_X_Foot_Offset+1(a2),d6
		sub	#X_TOLLERANZ,d6
.NoFoot		move	TEMET_X_Position(a2),d0
		add	d6,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		jsr	Get_Block_All
		;--Fetch Block DATA
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Test ob ich schon in Move fast war
		tst	TEMET_KollisionFlag(a2)
		beq.s	.NoFurtherTest	;gerade gekommen
		;--Test if Kollision should be cleared
		;--Test ob letzter Frame getestet werden soll
		move.b	TEMET_Speed_X(a2),d0
		tst.b	d0
		bpl.s	.OkPosX
		neg.b	d0
.OkPosX		cmp.b	#3,d0
		bls.s	.NoFurtherTest
		;--letzer Frame
		move.l	TEMET_Save_a1(a2),a3
		cmp.b	#boden,Block_Through(a3)
		bne.s	.NoFurtherTest
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a3)
		beq.s	.NoFurtherTest
		;--dieser Frame
		cmp.b	#boden,Block_Through(a1)
		bne.s	.NoFurtherTest
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		bne.s	.NoFurtherTest
		;-- von Boden auf schraege gekommen
		bra	.Clear_Kollision

.NoFurtherTest	*--*>Move Fast setzen
		move	#1,TEMET_KollisionFlag(a2)

		;--TEST IF IN AIR
		cmp.b	#luft,Block_Through(a1)
		beq	.Clear_Kollision
		cmp.b	#-1,Block_Y0(a1,d2)
		beq	.Nothing_to_do
		;--Y auf Sechzehnergrenze setzen
		sub	d3,TEMET_Y_Position(a2)
		;--TEST IF SWAND
		cmp.b	#-2,Block_Y0(a1,d2)
		bne	.Test_Speed_Bere
.NegLoop		jsr	.OneBlockUp
		cmp.b	#-2,Block_Y0(a1,d2)
		beq.s	.NegLoop

		;--Test ob neues Auftreffen
.Test_Speed_Bere
		tst	TEMET_Up_Timer(a2)
		bne.s	.Set_Height
		;--Neues Auftreffen werte Speichern und berechnen
		move.l	a1,TEMET_Save_a1(a2)
		move	d2,TEMET_Save_X_d2(a2)
		move	d2,-(sp)
		move	d3,-(sp)
		;NormSpeeds umwandeln
		move	TEMET_Speed_X(a2),d0
		move	TEMET_Speed_Y(a2),d1
		clr.w	TEMET_New_Calc_Flag(a2)
		jsr	Make_New_Speed
		jsr	Make_Directions
		move	d4,TEMET_Speed_X(a2)
		move	d5,TEMET_Speed_Y(a2)
		move	(sp)+,d3
		move	(sp)+,d2
.Set_Height	;Set Right Height
		moveq	#0,d1
		move.b	Block_Y0(a1,d2),d1
		add	d1,TEMET_Y_Position(a2)
.Kollision_Ok	;--auf Schraege testen
		
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq	.BackSetVals
		tst.b	Block_Y0(a1,d2)
     		bpl	.BackSetGerade
		rts

*------------------------------------------------------------------------------
.Clear_Kollision
		move	TEMET_X_Position(a2),d0
		add	d6,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_SRG_BIT,d0
		beq.s	.TestSchraegeDown
		move	#1,TEMET_S_Test_Flag(a2)
		bra.s	.SchraegeDown
.TestSchraegeDown
		move	TEMET_X_Position(a2),d0
		add	d6,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		add	#16,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		bne.s	.SchraegeDown
		move	#1,TEMET_S_Test_Flag(a2)
.SchraegeDown	clr.w	TEMET_New_Calc_Flag(a2)
		clr.w	TEMET_KollisionFlag(a2)
		clr.w	TEMET_Up_Timer(a2)
.Nothing_to_do
		move	TEMET_Speed_X(a2),d0
		bpl.s	.OKAY
		neg	d0
.OKAY		cmp	#$0200,d0
		bhs.s	.Nothingtodoo

		move	TEMET_X_Position(a2),d0
		add	#16,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.Nothingtodoo
		moveq	#4,d7
		tst	TEMET_Speed_X(a2)
		bpl.s	.CorrektSpeed
		moveq	#-4,d7
.CorrektSpeed	add	d7,TEMET_X_Position(a2)

.Nothingtodoo
		rts
*------------------------------------------------------------------------------
.BackSetVals	move	#1,TEMET_New_Calc_Flag(a2)
		cmp	#SPRUNG,TEMET_Status(a2)
		bne.s	.NoI1
		move	#NORMAL,TEMET_Status(a2)
.NoI1		move.l	a1,TEMET_Save_a1(a2)
		move	d2,TEMET_Save_X_d2(a2)
		move	#1,TEMET_S_Test_Flag(a2)
		clr.w	TEMET_FLASH_JUMPER(a2)
		rts
.BackSetGerade	cmp	#SPRUNG,TEMET_Status(a2)
		bne.s	.NoI2
		move	#NORMAL,TEMET_Status(a2)
.NoI2		move	#2,TEMET_New_Calc_Flag(a2)
		move.l	a1,TEMET_Save_a1(a2)
		move	d2,TEMET_Save_X_d2(a2)
		clr.w	TEMET_FLASH_JUMPER(a2)
		rts
*------------------------------------------------------------------------------
.OneBlockUp	sub	#16,TEMET_Y_Position(a2)
		move	TEMET_X_Position(a2),d0
		add	d6,d0
		move	TEMET_Y_Position(a2),d1
		add	TEMET_Y_Foot_Offset(a2),d1
		jsr	Get_Block_All
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		rts
*------------------------------------------------------------------------------
*---------------------------------------------------------------------------
Test_Flash_On	*--*>Test Flash anschalten

		lea	(a6),a2
		cmp	#3,TEMET_Shield_Flag(a2)
		beq.s	.NoOn
		tst	TEMET_Underwater(a2)
		bne.s	.NoOn
		tst	TEMET_KollisionFlag(a2)
		beq.s	.NoOn
		tst.b	Flash(a6)
		beq.s	.NoOn
		tst.b	Flash+1(a6)	*ANZAHL
		beq.s	.NoOn
		*--*>Make Flash On		
		move	TEMET_Shield_Flag(a2),TEMET_Shield_Save(a2)
		subq.b	#1,Flash+1(a6)
		move	#$0700,TEMET_Speed_X(a2)
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.RightOK
		move	#$ffff-$0700,TEMET_Speed_X(a2)
.RightOK
		move	#3,TEMET_Shield_Flag(a2)
		move	#6*60,TEMET_Been_HitTimer(a2)

		jsr	Set_Flashes

.NoOn		rts


*---------------------------------------------------------------------------
*---------------------------------------------------------------------------
*	Joystick GLOBAL
*---------------------------------------------------------------------------
MAX_TIME_NATURE	=(30+29)*50+25
MAX_TIME_WATER	=(30+29)*50+25
Act_Steer_Tab	;incbin	hd1:-TIMET/Temet_System/-NATURE/includes/NATURE_Spur
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Record_Buffer	= $100000

GlobalJoy_Pad 	*--*>Clear Values
		bsr	JoyPad

	;Aufzeichnen einer Spur falls ntig!

	IFNE	Record
		cmp.b	Spur_JoyPad(a6),d0
		beq.s	.count_value
.insert_value:
		move.l	Spur_Pointer(a6),a0
		move.b	Spur_counter(a6),(a0)+
		move.b	d0,(a0)+
		move.b	d0,Spur_JoyPad(a6)
		sf	Spur_counter(a6)
		move.l	a0,Spur_Pointer(a6)
		bra.s	.end_spur
.count_value:
		addq.b	#1,Spur_counter(a6)
		cmp.b	#255,Spur_counter(a6)
		beq.s	.insert_value
.end_spur:
	ENDC

	IFEQ	Record

		tst.b	Glo_Spur(a6)
		beq.s	.no_replay

		tst.b	Spur_counter(a6)
		bne.s	.count_counter
		move.l	Spur_Pointer(a6),a0
		move.b	(a0)+,Spur_JoyPad(a6)
		move.b	(a0)+,Spur_counter(a6)
		move.l	a0,Spur_Pointer(a6)
		bra.s	.end_replay
.count_counter:
		subq.b	#1,Spur_counter(a6)
.end_replay:
		move.b	Spur_JoyPad(a6),d0
		cmp.b	#$ff,d0
		bne.s	.no_replay

		moveq	#0,d0
		bsr	Quit_Game		;Hiernach wird der TEMET_Supervisor nicht mehr aufgerufen!
		moveq	#0,d0

.no_replay:
	ENDC

		;Abfragen des Flug-Buttons

		move.b	FJump_Bit(a6),d1

		btst	d1,d0
		beq.s	.no_flying
		bset	#PAD_UP,d0
		move.b	Jump_Bit(a6),d1
		bset	d1,d0
.no_flying:

		clr.b	GlobalJoyX(a6)
		clr.w	GlobalJoyY(a6)	;:Y, Y_S
		clr.w	GlobalJoyFire(a6)
		clr.w	GlobalJoyFire_S(a6)

		;tst.b	Win(a6)
		;bne	.NoQuest
		;tst	Play
		;bne	Decode_Pad

		move.b	Flash_Bit(a6),d1
		btst	d1,d0
		beq.s	.NoFlash
		jsr	Test_Flash_On

.NoFlash:
		move.b	Jump_Bit(a6),d1
		btst	d1,d0
		beq.s	.TestX
		move.b	#1,GlobalJoyFire(a6)
		move.b	#1,GlobalJoyFire_S(a6)

.TestX
		btst	#PAD_RIGHT,d0
		beq.s	.NotRight
		move.b	#Rechts,GlobalJoyX(a6)
		bra.s	.TestY
	
.NotRight	btst	#PAD_LEFT,d0
		beq.s	.NotLeft
		move.b	#Links,GlobalJoyX(a6)
.NotLeft
.TestY
		btst	#PAD_DOWN,d0
		beq.s	.NotDown
		move.b	#Runter,GlobalJoyY(a6)
		move.b	#Runter,GlobalJoyY_S(a6)
		bra.s	.Back
.NotDown	btst	#PAD_UP,d0
		beq.s	.Back
		move.b	#Hoch,GlobalJoyY(a6)
		move.b	#Hoch,GlobalJoyY_S(a6)
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Back
.NoQuest		rts

*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Show_Player_Data:
	move.l	a0,Player_Info(a6)
	movem.l	d0-d3,Player_Datas(a6)
	rts

Show_Player:
	sf	TEMET_Add_Flag(a6)
	move.l	Sig_VRam_Pointer(a6),-(sp)
	move.w	Sig_LinkData(a6),-(sp)

	move.l	Player_Pointer(a6),Sig_VRam_Pointer(a6)
	move.w	Player_Link(a6),Sig_LinkData(a6)

	move.l	Player_Info(a6),a0
	addq.l	#2,a0
	movem.l	Player_Datas(a6),d0-d3

	bsr	Add_Sigel

	;Die richtige Verkettung herstellen!

	move.l	Sig_VRam_Pointer(a6),a0
	move.w	Player_Link(a6),d0
	addq.w	#3,d0
	move.b	d0,-5(a0)

	move.w	(sp)+,Sig_LinkData(a6)
	move.l	(sp)+,Sig_VRam_Pointer(a6)

		move.l	Player_Info(a6),a0

		moveq	#0,d4
		move.w	(a0)+,d4
		cmp.w	TEMET_Last_GFX(a6),d4
		beq.s	.dont_copy
		move.w	d4,TEMET_Last_GFX(a6)
		lea	Player_raw,a0
		add.l	d4,a0
		lea	Nutz_VRam,a1
		move.w	#48*32,d0
		bsr	AddDMA
		st	TEMET_Add_Flag(a6)
.dont_copy:
	rts

Show_Player_Setup:
	move.l	Sig_VRam_Pointer(a6),Player_Pointer(a6)
	move.w	Sig_LinkData(a6),Player_Link(a6)
	add.l	#4*8,Sig_VRam_Pointer(a6)		;Platz freihalten.
	addq.w	#4,Sig_LinkData(a6)
	rts


Display_Dead_Timet:
		;Rausfallen lassen!

		add.l	#$00000800,TEMET_Anim_Delay(a6)

		move.w	TEMET_Y_Position(a6),d1
		move.w	TEMET_Anim_Delay(a6),d0
		move.w	TEMET_Anim_Delay+2(a6),d2
		add.w	d2,TEMET_Anim_Delay+4(a6)		;Nachkomma-anteil
		addx.w	d0,d1
		move.w	d1,TEMET_Y_Position(a6)

		;Zeit bis zum Ausblenden zhlen.

		subq.w	#1,TEMET_MaxSpeed(a6)
		bpl.s	.no_fadeout

		move.w	#1000,TEMET_MaxSpeed(a6)

	moveq	#-1,d0			;****** Player_Dead-returncode ******
	bsr	Quit_Game

.no_fadeout:
		move	TEMET_X_Position(a6),d0
		sub	Scr_X_Level_Pos(a6),d0
		add	#128,d0
		move	TEMET_Y_Position(a6),d1
		sub	Scr_Y_Level_Pos(a6),d1
		add	#128,d1
		cmp.w	#224+128,d1
		blt.s	.ok
		moveq	#0,d1				;Clippen
.ok:
		move.l	TEMET_Akt_Anim_Pnt(a6),a0
		addq	#1,d1
		move	TAS_Anim_FlipStatus(a0),d2
		and.w	#1,d2				;Nur X-Flipstatus bernehmen!

		move	#DEADLER,d7

		lea	Nutz_Obj0,a0
		lea	(a0,d7.w),a0

		move.w	TEMET_Prio(a6),d3

		bsr	Show_Player_Data

		rts

*-----------------------------------------------------------------------------------
		ENDC